Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move over to Vulkan 1.3 as default baseline #123

Merged
merged 7 commits into from
Dec 10, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions compiler/compiler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -332,9 +332,9 @@ std::vector<uint32_t> GLSLCompiler::compile(std::string &error_message, const st
}

options.SetTargetEnvironment(shaderc_target_env_vulkan,
target == Target::Vulkan11_Spirv14 ?
shaderc_env_version_vulkan_1_2 : shaderc_env_version_vulkan_1_1);
options.SetTargetSpirv(target == Target::Vulkan11_Spirv14 ? shaderc_spirv_version_1_4 : shaderc_spirv_version_1_3);
target == Target::Vulkan13 ?
shaderc_env_version_vulkan_1_3 : shaderc_env_version_vulkan_1_1);
options.SetTargetSpirv(target == Target::Vulkan13 ? shaderc_spirv_version_1_6 : shaderc_spirv_version_1_3);
options.SetSourceLanguage(shaderc_source_language_glsl);

shaderc::SpvCompilationResult result;
Expand Down Expand Up @@ -370,7 +370,7 @@ std::vector<uint32_t> GLSLCompiler::compile(std::string &error_message, const st
}

std::vector<uint32_t> compiled_spirv(result.cbegin(), result.cend());
spvtools::SpirvTools core(target == Target::Vulkan11_Spirv14 ? SPV_ENV_VULKAN_1_1_SPIRV_1_4 : SPV_ENV_VULKAN_1_1);
spvtools::SpirvTools core(target == Target::Vulkan13 ? SPV_ENV_VULKAN_1_3 : SPV_ENV_VULKAN_1_1);
core.SetMessageConsumer([&error_message](spv_message_level_t, const char *, const spv_position_t&, const char *message) {
error_message = message;
});
Expand Down
2 changes: 1 addition & 1 deletion compiler/compiler.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ enum class Stage
enum class Target
{
Vulkan11,
Vulkan11_Spirv14
Vulkan13
};

class GLSLCompiler
Expand Down
6 changes: 3 additions & 3 deletions renderer/animation_system.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -486,13 +486,13 @@ void AnimationSystem::update(AnimationState *anim, double frame_time, double ela
{
auto *node = anim->skinned_node;
anim->animation.animate(anim->transforms_base,
node->get_skin()->skin.data(), node->get_skin()->skin.size(), float(offset));
node->get_skin()->skin.data(), node->get_skin()->skin.size(), float(offset));
node->invalidate_cached_transform();
}
else
{
anim->animation.animate(anim->transforms_base,
anim->channel_transforms.data(), anim->channel_transforms.size(), float(offset));
anim->channel_transforms.data(), anim->channel_transforms.size(), float(offset));
for (auto *node : anim->channel_nodes)
node->invalidate_cached_transform();
}
Expand Down Expand Up @@ -553,7 +553,7 @@ void AnimationSystem::animate(TaskComposer &composer, double frame_time, double
}

AnimationSystem::AnimationState::AnimationState(const AnimationUnrolled &anim,
Transform *transforms_base_,
Transform *transforms_base_,
Util::SmallVector<uint32_t> channel_transforms_,
Util::SmallVector<Node *> channel_nodes_,
double start_time_)
Expand Down
2 changes: 1 addition & 1 deletion renderer/animation_system.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ class AnimationSystem
struct AnimationState : Util::IntrusiveUnorderedArrayEnabled
{
AnimationState(const AnimationUnrolled &anim,
Transform *transforms_base_,
Transform *transforms_base_,
Util::SmallVector<uint32_t> channel_transforms_,
Util::SmallVector<Node *> channel_nodes_,
double start_time_);
Expand Down
8 changes: 4 additions & 4 deletions renderer/fft/fft.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,7 @@ void FFT::Impl::optimize_multi_fft(unsigned &multi_fft_x, unsigned &multi_fft_y,
unsigned split = split_first + split_second + split_third;

unsigned subgroup_size_log2 =
Util::floor_log2(std::max(1u, device->get_device_features().subgroup_properties.subgroupSize));
Util::floor_log2(std::max(1u, device->get_device_features().vk11_props.subgroupSize));
if (!subgroup_size_log2)
subgroup_size_log2 = 5;

Expand Down Expand Up @@ -231,7 +231,7 @@ void FFT::Impl::optimize_multi_fft(unsigned &multi_fft_x, unsigned &multi_fft_y,
void FFT::Impl::optimize_multi_fft_resolve(unsigned &multi_fft_x, unsigned &multi_fft_y) const
{
unsigned subgroup_size_log2 =
Util::floor_log2(std::max(1u, device->get_device_features().subgroup_properties.subgroupSize));
Util::floor_log2(std::max(1u, device->get_device_features().vk11_props.subgroupSize));
if (!subgroup_size_log2)
subgroup_size_log2 = 5;

Expand All @@ -254,8 +254,8 @@ void FFT::Impl::optimize_multi_fft_resolve(unsigned &multi_fft_x, unsigned &mult

const char *FFT::Impl::get_fp16_define() const
{
if (device->get_device_features().float16_int8_features.shaderFloat16 &&
device->get_device_features().storage_16bit_features.storageBuffer16BitAccess)
if (device->get_device_features().vk12_features.shaderFloat16 &&
device->get_device_features().vk11_features.storageBuffer16BitAccess)
{
return "FFT_FULL_FP16";
}
Expand Down
10 changes: 5 additions & 5 deletions renderer/lights/clusterer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1661,7 +1661,7 @@ void LightClusterer::update_bindless_range_buffer_gpu(Vulkan::CommandBuffer &cmd
constexpr VkSubgroupFeatureFlags required =
VK_SUBGROUP_FEATURE_SHUFFLE_BIT |
VK_SUBGROUP_FEATURE_BASIC_BIT;
if ((features.subgroup_properties.supportedOperations & required) == required &&
if ((features.vk11_props.subgroupSupportedOperations & required) == required &&
cmd.get_device().supports_subgroup_size_log2(true, 5, 7))
{
cmd.set_program("builtin://shaders/lights/clusterer_bindless_z_range_opt.comp");
Expand Down Expand Up @@ -1780,8 +1780,8 @@ void LightClusterer::update_bindless_mask_buffer_decal_gpu(Vulkan::CommandBuffer
constexpr VkSubgroupFeatureFlags required = VK_SUBGROUP_FEATURE_BALLOT_BIT | VK_SUBGROUP_FEATURE_BASIC_BIT |
VK_SUBGROUP_FEATURE_SHUFFLE_BIT;

if ((features.subgroup_properties.supportedOperations & required) == required &&
(features.subgroup_properties.supportedStages & VK_SHADER_STAGE_COMPUTE_BIT) != 0)
if ((features.vk11_props.subgroupSupportedOperations & required) == required &&
(features.vk11_props.subgroupSupportedStages & VK_SHADER_STAGE_COMPUTE_BIT) != 0)
{
// Our desired range is either 32 threads or 64 threads, 32 threads is preferred.

Expand Down Expand Up @@ -1881,8 +1881,8 @@ void LightClusterer::update_bindless_mask_buffer_gpu(Vulkan::CommandBuffer &cmd)

constexpr VkSubgroupFeatureFlags required = VK_SUBGROUP_FEATURE_BALLOT_BIT | VK_SUBGROUP_FEATURE_BASIC_BIT;

if ((features.subgroup_properties.supportedOperations & required) == required &&
(features.subgroup_properties.supportedStages & VK_SHADER_STAGE_COMPUTE_BIT) != 0)
if ((features.vk11_props.subgroupSupportedOperations & required) == required &&
(features.vk11_props.subgroupSupportedStages & VK_SHADER_STAGE_COMPUTE_BIT) != 0)
{
// Our desired range is either 32 threads or 64 threads, 32 threads is preferred.

Expand Down
2 changes: 1 addition & 1 deletion renderer/post/aa.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ bool setup_after_post_chain_upscaling(RenderGraph &graph, const std::string &inp
const char *vert = "builtin://shaders/post/ffx-fsr/upscale.vert";
const char *frag = "builtin://shaders/post/ffx-fsr/upscale.frag";

bool fp16 = cmd.get_device().get_device_features().float16_int8_features.shaderFloat16;
bool fp16 = cmd.get_device().get_device_features().vk12_features.shaderFloat16;
const char *fsr_fp16 = getenv("FIDELITYFX_FSR_FP16");
if (fsr_fp16)
{
Expand Down
10 changes: 5 additions & 5 deletions renderer/post/spd.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,22 +34,22 @@ bool supports_single_pass_downsample(Vulkan::Device &device, VkFormat format)

bool supports_full_group =
device.supports_subgroup_size_log2(true, 2, 7);
bool supports_compute = (features.subgroup_properties.supportedStages & VK_SHADER_STAGE_COMPUTE_BIT) != 0;
bool supports_compute = (features.vk11_props.subgroupSupportedStages & VK_SHADER_STAGE_COMPUTE_BIT) != 0;

if (device.get_gpu_properties().limits.maxComputeWorkGroupSize[0] < 256)
return false;
if (!features.enabled_features.shaderStorageImageArrayDynamicIndexing)
return false;

VkFormatProperties3KHR props3 = { VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR };
VkFormatProperties3 props3 = { VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3 };
device.get_format_properties(format, &props3);
if ((props3.optimalTilingFeatures & VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR) == 0)
if ((props3.optimalTilingFeatures & VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT) == 0)
return false;
if ((props3.optimalTilingFeatures & VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR) == 0)
if ((props3.optimalTilingFeatures & VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT) == 0)
return false;

constexpr VkSubgroupFeatureFlags required = VK_SUBGROUP_FEATURE_BASIC_BIT | VK_SUBGROUP_FEATURE_QUAD_BIT;
bool supports_quad_basic = (features.subgroup_properties.supportedOperations & required) == required;
bool supports_quad_basic = (features.vk11_props.subgroupSupportedOperations & required) == required;
return supports_full_group && supports_compute && supports_quad_basic;
}

Expand Down
6 changes: 3 additions & 3 deletions renderer/post/ssr.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -126,11 +126,11 @@ struct SSRState : RenderPassInterface
VK_ACCESS_2_SHADER_SAMPLED_READ_BIT |
VK_ACCESS_2_SHADER_STORAGE_READ_BIT);

VkFormatProperties3KHR props3 = { VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR };
VkFormatProperties3 props3 = { VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3 };
cmd.get_device().get_format_properties(output_view->get_format(), &props3);
if (!(props3.optimalTilingFeatures & VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR))
if (!(props3.optimalTilingFeatures & VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT))
LOGW("Cannot read without format.\n");
if (!(props3.optimalTilingFeatures & VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR))
if (!(props3.optimalTilingFeatures & VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT))
LOGW("Cannot write without format.\n");

defines.clear();
Expand Down
2 changes: 1 addition & 1 deletion renderer/render_graph.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2181,7 +2181,7 @@ void RenderGraph::physical_pass_enqueue_graphics_commands(const PhysicalPass &ph
}
else if (multiview_count)
{
if (device->get_device_features().multiview_features.multiview)
if (device->get_device_features().vk11_features.multiview)
{
rp_info.num_layers = physical_pass.layers;
rp_info.base_layer = 0;
Expand Down
18 changes: 9 additions & 9 deletions renderer/renderer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -299,11 +299,11 @@ static const char *renderer_to_define(RendererType type)
void Renderer::add_subgroup_defines(Vulkan::Device &device, std::vector<std::pair<std::string, int>> &defines,
VkShaderStageFlagBits stage)
{
auto &subgroup = device.get_device_features().subgroup_properties;
auto &vk11 = device.get_device_features().vk11_props;

if ((subgroup.supportedStages & stage) != 0 &&
if ((vk11.subgroupSupportedStages & stage) != 0 &&
!ImplementationQuirks::get().force_no_subgroups &&
subgroup.subgroupSize >= 4)
vk11.subgroupSize >= 4)
{
const VkSubgroupFeatureFlags quad_required =
(stage & (VK_SHADER_STAGE_FRAGMENT_BIT | VK_SHADER_STAGE_COMPUTE_BIT)) != 0 ?
Expand All @@ -316,11 +316,11 @@ void Renderer::add_subgroup_defines(Vulkan::Device &device, std::vector<std::pai
VK_SUBGROUP_FEATURE_VOTE_BIT |
VK_SUBGROUP_FEATURE_ARITHMETIC_BIT;

if ((subgroup.supportedOperations & required) == required)
if ((vk11.subgroupSupportedOperations & required) == required)
defines.emplace_back("SUBGROUP_OPS", 1);

if (!ImplementationQuirks::get().force_no_subgroup_shuffle)
if ((subgroup.supportedOperations & VK_SUBGROUP_FEATURE_SHUFFLE_BIT) != 0)
if ((vk11.subgroupSupportedOperations & VK_SUBGROUP_FEATURE_SHUFFLE_BIT) != 0)
defines.emplace_back("SUBGROUP_SHUFFLE", 1);

if (stage == VK_SHADER_STAGE_FRAGMENT_BIT)
Expand All @@ -337,7 +337,7 @@ void Renderer::set_mesh_renderer_options_internal(RendererOptionFlags flags)
if (device)
{
// Safe early-discard.
if (device->get_device_features().demote_to_helper_invocation_features.shaderDemoteToHelperInvocation)
if (device->get_device_features().vk13_features.shaderDemoteToHelperInvocation)
global_defines.emplace_back("DEMOTE", 1);
add_subgroup_defines(*device, global_defines, VK_SHADER_STAGE_FRAGMENT_BIT);
}
Expand Down Expand Up @@ -872,14 +872,14 @@ void DeferredLightRenderer::render_light(Vulkan::CommandBuffer &cmd, const Rende
"builtin://shaders/lights/directional.frag");

auto &light = *context.get_lighting_parameters();
auto &subgroup = device.get_device_features().subgroup_properties;
auto &vk11 = device.get_device_features().vk11_props;

std::vector<std::pair<std::string, int>> defines;
if (light.shadows && light.shadows->get_create_info().layers > 1)
{
defines.emplace_back("SHADOW_CASCADES", 1);
if ((subgroup.supportedOperations & VK_SUBGROUP_FEATURE_ARITHMETIC_BIT) != 0 &&
(subgroup.supportedStages & VK_SHADER_STAGE_FRAGMENT_BIT) != 0 &&
if ((vk11.subgroupSupportedOperations & VK_SUBGROUP_FEATURE_ARITHMETIC_BIT) != 0 &&
(vk11.subgroupSupportedStages & VK_SHADER_STAGE_FRAGMENT_BIT) != 0 &&
!ImplementationQuirks::get().force_no_subgroups)
{
// For cascaded shadows.
Expand Down
4 changes: 2 additions & 2 deletions slangmosh/slangmosh.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ using namespace Granite;

static void print_help()
{
LOGE("slangmosh <desc.json> [-O] [--strip] [--spv14] [--output header.hpp] [--help] [--output-interface interface.hpp]\n");
LOGE("slangmosh <desc.json> [-O] [--strip] [--vk13] [--output header.hpp] [--help] [--output-interface interface.hpp]\n");
}

struct ShaderVariant
Expand Down Expand Up @@ -675,7 +675,7 @@ static int main_inner(int argc, char **argv)
cbs.add("--output", [&](CLIParser &parser) { output_path = parser.next_string(); });
cbs.add("-O", [&](CLIParser &) { opt = true; });
cbs.add("--strip", [&](CLIParser &) { strip = true; });
cbs.add("--spv14", [&](CLIParser &) { target = Target::Vulkan11_Spirv14; });
cbs.add("--vk13", [&](CLIParser &) { target = Target::Vulkan13; });
cbs.add("--namespace", [&](CLIParser &parser) { generated_namespace = parser.next_string(); });
cbs.add("--output-interface", [&](CLIParser &parser) { output_interface_path = parser.next_string(); });
cbs.default_handler = [&](const char *str) { input_path = str; };
Expand Down
2 changes: 1 addition & 1 deletion tests/d3d11_interop_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -236,7 +236,7 @@ int main()
return EXIT_FAILURE;
}

auto timeline = device.request_semaphore_external(VK_SEMAPHORE_TYPE_TIMELINE_KHR,
auto timeline = device.request_semaphore_external(VK_SEMAPHORE_TYPE_TIMELINE,
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT);
if (!timeline)
{
Expand Down
2 changes: 1 addition & 1 deletion tests/d3d12_interop_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -253,7 +253,7 @@ int main()
return EXIT_FAILURE;
}

auto timeline = device.request_semaphore_external(VK_SEMAPHORE_TYPE_TIMELINE_KHR,
auto timeline = device.request_semaphore_external(VK_SEMAPHORE_TYPE_TIMELINE,
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT);
if (!timeline)
{
Expand Down
12 changes: 6 additions & 6 deletions tests/external_objects.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ static bool run_test(Device &producer, Device &consumer)
// Fallback to binary if we have to.

write_timeline = producer.request_semaphore_external(
VK_SEMAPHORE_TYPE_TIMELINE_KHR,
VK_SEMAPHORE_TYPE_TIMELINE,
ExternalHandle::get_opaque_semaphore_handle_type());

if (write_timeline)
Expand All @@ -56,7 +56,7 @@ static bool run_test(Device &producer, Device &consumer)
{
// No reason for this to fail if we can export timeline ...
read_timeline = consumer.request_semaphore_external(
VK_SEMAPHORE_TYPE_TIMELINE_KHR,
VK_SEMAPHORE_TYPE_TIMELINE,
ExternalHandle::get_opaque_semaphore_handle_type());

if (!read_timeline)
Expand Down Expand Up @@ -148,7 +148,7 @@ static bool run_test(Device &producer, Device &consumer)
VK_PIPELINE_STAGE_TRANSFER_BIT, VK_ACCESS_TRANSFER_WRITE_BIT);
producer.submit(fill_cmd);
auto external = producer.request_semaphore_external(
VK_SEMAPHORE_TYPE_BINARY_KHR, ExternalHandle::get_opaque_semaphore_handle_type());
VK_SEMAPHORE_TYPE_BINARY, ExternalHandle::get_opaque_semaphore_handle_type());
producer.submit_empty(CommandBuffer::Type::Generic, nullptr, external.get());

ExternalHandle handle = external->export_to_handle();
Expand All @@ -157,7 +157,7 @@ static bool run_test(Device &producer, Device &consumer)

// Consume
auto import = consumer.request_semaphore_external(
VK_SEMAPHORE_TYPE_BINARY_KHR, ExternalHandle::get_opaque_semaphore_handle_type());
VK_SEMAPHORE_TYPE_BINARY, ExternalHandle::get_opaque_semaphore_handle_type());
if (!import->import_from_handle(handle))
{
close_native_handle(handle.handle);
Expand Down Expand Up @@ -191,15 +191,15 @@ static bool run_test(Device &producer, Device &consumer)
// Binary path.

external = consumer.request_semaphore_external(
VK_SEMAPHORE_TYPE_BINARY_KHR, ExternalHandle::get_opaque_semaphore_handle_type());
VK_SEMAPHORE_TYPE_BINARY, ExternalHandle::get_opaque_semaphore_handle_type());
consumer.submit_empty(CommandBuffer::Type::AsyncTransfer, nullptr, external.get());

handle = external->export_to_handle();
if (!handle)
break;

import = producer.request_semaphore_external(
VK_SEMAPHORE_TYPE_BINARY_KHR, ExternalHandle::get_opaque_semaphore_handle_type());
VK_SEMAPHORE_TYPE_BINARY, ExternalHandle::get_opaque_semaphore_handle_type());
if (!import->import_from_handle(handle))
{
close_native_handle(handle.handle);
Expand Down
4 changes: 2 additions & 2 deletions tests/gl_interop_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -231,7 +231,7 @@ int main()
{
// Synchronize with OpenGL. Export a handle.
auto ext_semaphore = device.request_semaphore_external(
VK_SEMAPHORE_TYPE_BINARY_KHR, ExternalHandle::get_opaque_semaphore_handle_type());
VK_SEMAPHORE_TYPE_BINARY, ExternalHandle::get_opaque_semaphore_handle_type());
device.submit_empty(CommandBuffer::Type::Generic, nullptr, ext_semaphore.get());
auto exported_semaphore = ext_semaphore->export_to_handle();

Expand All @@ -255,7 +255,7 @@ int main()
{
// Synchronize with OpenGL. Export a handle that GL can signal.
auto ext_semaphore = device.request_semaphore_external(
VK_SEMAPHORE_TYPE_BINARY_KHR, ExternalHandle::get_opaque_semaphore_handle_type());
VK_SEMAPHORE_TYPE_BINARY, ExternalHandle::get_opaque_semaphore_handle_type());
// Have to mark the semaphore is signalled since we assert on that being the case when exporting a semaphore.
ext_semaphore->signal_external();
auto exported_semaphore = ext_semaphore->export_to_handle();
Expand Down
4 changes: 2 additions & 2 deletions tests/triangle_mesh.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -47,13 +47,13 @@ struct TriangleMeshApplication : Granite::Application, Granite::EventHandler
auto &device = wsi.get_device();
auto &features = device.get_device_features();

if ((features.subgroup_properties.supportedStages & VK_SHADER_STAGE_MESH_BIT_EXT) == 0)
if ((features.vk11_props.subgroupSupportedStages & VK_SHADER_STAGE_MESH_BIT_EXT) == 0)
{
LOGE("Subgroups not supported in mesh.\n");
return;
}

if ((features.subgroup_properties.supportedStages & VK_SHADER_STAGE_TASK_BIT_EXT) == 0)
if ((features.vk11_props.subgroupSupportedStages & VK_SHADER_STAGE_TASK_BIT_EXT) == 0)
{
LOGE("Subgroups not supported in task.\n");
return;
Expand Down
2 changes: 1 addition & 1 deletion tests/ycbcr_sampling.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ struct YCbCrSamplingTest : Granite::Application, Granite::EventHandler

void on_module_created(const DeviceShaderModuleReadyEvent &e)
{
if (!e.get_device().get_device_features().sampler_ycbcr_conversion_features.samplerYcbcrConversion)
if (!e.get_device().get_device_features().vk11_features.samplerYcbcrConversion)
{
LOGE("YCbCr sampling not supported!\n");
std::terminate();
Expand Down
2 changes: 1 addition & 1 deletion tests/z_binning_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ static int main_inner()
constexpr bool UseOptimized = true;
bool support_optimized =
UseOptimized &&
(features.subgroup_properties.supportedOperations & required) == required &&
(features.vk11_props.subgroupSupportedOperations & required) == required &&
device.supports_subgroup_size_log2(true, 5, 7);

auto cmd = device.request_command_buffer();
Expand Down
2 changes: 1 addition & 1 deletion third_party/fsr2
Loading
Loading