From 1ffb856ac1b7fc5043a7c74e30a743bd850088ac Mon Sep 17 00:00:00 2001 From: Sergey Yablokov Date: Sun, 11 May 2025 18:35:08 +0200 Subject: [PATCH 1/2] Properly mask out unsupported stage --- internal/Vk/ContextVK.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/internal/Vk/ContextVK.cpp b/internal/Vk/ContextVK.cpp index c0703ce3..2d1fc25d 100644 --- a/internal/Vk/ContextVK.cpp +++ b/internal/Vk/ContextVK.cpp @@ -217,10 +217,13 @@ bool Ray::Vk::Context::Init(ILog *log, const VulkanDevice &vk_device, const Vulk raytracing_supported_, ray_query_supported_, fp16_supported_, int64_supported_, int64_atomics_supported_, coop_matrix_supported_, pageable_memory_supported_); + // mask out unsupported stages if (!raytracing_supported_) { - // mask out unsupported stage supported_stages_mask_ &= ~VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR; } + if (!raytracing_supported_ && !ray_query_supported_) { + supported_stages_mask_ &= ~VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR; + } if (!external_ && !InitVkDevice(api_, device_, physical_device_, graphics_family_index_, raytracing_supported_, ray_query_supported_, fp16_supported_, int64_supported_, int64_atomics_supported_, From 3fdd5bfba45b6f6df134a16121df774af19ab9c5 Mon Sep 17 00:00:00 2001 From: Sergey Yablokov Date: Sat, 17 May 2025 18:09:49 +0200 Subject: [PATCH 2/2] Minor refactoring --- internal/PMJ.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/PMJ.cpp b/internal/PMJ.cpp index fbbbe3f1..80e23ad7 100644 --- a/internal/PMJ.cpp +++ b/internal/PMJ.cpp @@ -56,7 +56,7 @@ void Ray::GetValidOffsets(const int x_pos, const int y_pos, const std::vector Ray::GeneratePMJSamples(const unsigned int seed, const int sample_count, const int candidates_count) { @@ -110,7 +110,7 @@ Ray::aligned_vector Ray::GeneratePMJSamples(const unsigned int std::vector valid_offsets_x, valid_offsets_y; GetValidOffsets(x_pos, y_pos, strata, valid_offsets_x, valid_offsets_y); - if (candidates == 1 && false) { + if (candidates == 1) { return get_sample_candidate(valid_offsets_x, valid_offsets_y); } else { Ref::dvec2 best_candidate = {};