S_00B8A0_SHARED_VGPR_CNT(config->num_shared_vgprs / 8);
}
+static void
+compile_rt_prolog(struct radv_device *device, struct radv_ray_tracing_pipeline *pipeline)
+{
+ pipeline->base.base.shaders[MESA_SHADER_COMPUTE] = radv_create_rt_prolog(device);
+
+ /* create combined config */
+ combine_config(&pipeline->base.base.shaders[MESA_SHADER_COMPUTE]->config,
+ &pipeline->base.base.shaders[MESA_SHADER_INTERSECTION]->config);
+
+ postprocess_rt_config(&pipeline->base.base.shaders[MESA_SHADER_COMPUTE]->config,
+ device->physical_device->rad_info.gfx_level,
+ device->physical_device->rt_wave_size);
+}
+
static VkResult
radv_rt_pipeline_create(VkDevice _device, VkPipelineCache _cache,
const VkRayTracingPipelineCreateInfoKHR *pCreateInfo,
goto done;
compute_rt_stack_size(pCreateInfo, pipeline);
- pipeline->base.base.shaders[MESA_SHADER_COMPUTE] = radv_create_rt_prolog(device);
-
- combine_config(&pipeline->base.base.shaders[MESA_SHADER_COMPUTE]->config,
- &pipeline->base.base.shaders[MESA_SHADER_INTERSECTION]->config);
-
- postprocess_rt_config(&pipeline->base.base.shaders[MESA_SHADER_COMPUTE]->config,
- device->physical_device->rad_info.gfx_level,
- device->physical_device->rt_wave_size);
+ compile_rt_prolog(device, pipeline);
radv_compute_pipeline_init(device, &pipeline->base, pipeline_layout);