diff options
Diffstat (limited to 'src/video_core')
| -rw-r--r-- | src/video_core/renderer_vulkan/pipeline_helper.h | 6 | ||||
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp | 5 | 
2 files changed, 7 insertions, 4 deletions
| diff --git a/src/video_core/renderer_vulkan/pipeline_helper.h b/src/video_core/renderer_vulkan/pipeline_helper.h index 85ae726d1..3612e8a18 100644 --- a/src/video_core/renderer_vulkan/pipeline_helper.h +++ b/src/video_core/renderer_vulkan/pipeline_helper.h @@ -22,6 +22,7 @@  namespace Vulkan {  using Shader::Backend::SPIRV::NUM_TEXTURE_AND_IMAGE_SCALING_WORDS; +using Shader::Backend::SPIRV::RESCALING_PUSH_CONSTANT_WORDS_OFFSET;  class DescriptorLayoutBuilder {  public: @@ -71,12 +72,13 @@ public:      }      vk::PipelineLayout CreatePipelineLayout(VkDescriptorSetLayout descriptor_set_layout) const { +        using Shader::Backend::SPIRV::RescalingLayout; +        const u32 push_offset = is_compute ? RESCALING_PUSH_CONSTANT_WORDS_OFFSET : 0;          const VkPushConstantRange range{              .stageFlags = static_cast<VkShaderStageFlags>(                  is_compute ? VK_SHADER_STAGE_COMPUTE_BIT : VK_SHADER_STAGE_ALL_GRAPHICS),              .offset = 0, -            .size = (is_compute ? 0 : sizeof(f32)) + -                    sizeof(std::array<u32, NUM_TEXTURE_AND_IMAGE_SCALING_WORDS>), +            .size = sizeof(RescalingLayout) - push_offset,          };          return device->GetLogical().CreatePipelineLayout({              .sType = VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO, diff --git a/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp b/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp index 5ad1180bb..f08e9e840 100644 --- a/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp +++ b/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp @@ -483,8 +483,9 @@ void GraphicsPipeline::ConfigureDraw(const RescalingPushConstant& rescaling) {              cmdbuf.PushConstants(*pipeline_layout, VK_SHADER_STAGE_ALL_GRAPHICS, 0,                                   sizeof(scale_down_factor), &scale_down_factor);          } -        cmdbuf.PushConstants(*pipeline_layout, VK_SHADER_STAGE_ALL_GRAPHICS, sizeof(f32), -                             sizeof(rescaling_data), rescaling_data.data()); +        cmdbuf.PushConstants(*pipeline_layout, VK_SHADER_STAGE_ALL_GRAPHICS, +                             RESCALING_PUSH_CONSTANT_WORDS_OFFSET, sizeof(rescaling_data), +                             rescaling_data.data());          if (!descriptor_set_layout) {              return;          } | 
