diff --git a/src/amd/vulkan/radv_pipeline.c b/src/amd/vulkan/radv_pipeline.c index ad76927b725..ffe8fbb7ad0 100644 --- a/src/amd/vulkan/radv_pipeline.c +++ b/src/amd/vulkan/radv_pipeline.c @@ -239,6 +239,9 @@ void radv_shader_layout_init(const struct radv_pipeline_layout *pipeline_layout, mesa_shader_stage stage, struct radv_shader_layout *layout) { + if (!pipeline_layout) + return; + layout->num_sets = pipeline_layout->num_sets; for (unsigned i = 0; i < pipeline_layout->num_sets; i++) { layout->set[i].layout = pipeline_layout->set[i].layout; diff --git a/src/amd/vulkan/radv_pipeline_compute.c b/src/amd/vulkan/radv_pipeline_compute.c index ae43cd7b42a..58c27e392f4 100644 --- a/src/amd/vulkan/radv_pipeline_compute.c +++ b/src/amd/vulkan/radv_pipeline_compute.c @@ -85,7 +85,8 @@ radv_compute_pipeline_init(struct radv_compute_pipeline *pipeline, const struct pipeline->base.need_push_constants_upload |= radv_shader_need_push_constants_upload(shader); pipeline->base.push_constant_size = align(shader->info.push_constant_size, 4); - pipeline->base.dynamic_offset_count = layout->dynamic_offset_count; + if (layout) + pipeline->base.dynamic_offset_count = layout->dynamic_offset_count; } struct radv_shader_binary *