anv/nir: Rework arguments to apply_pipeline_layout
Instead of taking a whole pipeline (which could be anything!), just take a physical device and robust_buffer_access boolean. This makes it easier to verify that only the things in the hash actually affect pipeline compilation. Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
This commit is contained in:
@@ -40,7 +40,8 @@ bool anv_nir_lower_multiview(nir_shader *shader, uint32_t view_mask);
|
|||||||
bool anv_nir_lower_ycbcr_textures(nir_shader *shader,
|
bool anv_nir_lower_ycbcr_textures(nir_shader *shader,
|
||||||
struct anv_pipeline_layout *layout);
|
struct anv_pipeline_layout *layout);
|
||||||
|
|
||||||
void anv_nir_apply_pipeline_layout(struct anv_pipeline *pipeline,
|
void anv_nir_apply_pipeline_layout(const struct anv_physical_device *pdevice,
|
||||||
|
bool robust_buffer_access,
|
||||||
struct anv_pipeline_layout *layout,
|
struct anv_pipeline_layout *layout,
|
||||||
nir_shader *shader,
|
nir_shader *shader,
|
||||||
struct brw_stage_prog_data *prog_data,
|
struct brw_stage_prog_data *prog_data,
|
||||||
|
@@ -423,7 +423,8 @@ setup_vec4_uniform_value(uint32_t *params, uint32_t offset, unsigned n)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
anv_nir_apply_pipeline_layout(struct anv_pipeline *pipeline,
|
anv_nir_apply_pipeline_layout(const struct anv_physical_device *pdevice,
|
||||||
|
bool robust_buffer_access,
|
||||||
struct anv_pipeline_layout *layout,
|
struct anv_pipeline_layout *layout,
|
||||||
nir_shader *shader,
|
nir_shader *shader,
|
||||||
struct brw_stage_prog_data *prog_data,
|
struct brw_stage_prog_data *prog_data,
|
||||||
@@ -434,7 +435,7 @@ anv_nir_apply_pipeline_layout(struct anv_pipeline *pipeline,
|
|||||||
struct apply_pipeline_layout_state state = {
|
struct apply_pipeline_layout_state state = {
|
||||||
.shader = shader,
|
.shader = shader,
|
||||||
.layout = layout,
|
.layout = layout,
|
||||||
.add_bounds_checks = pipeline->device->robust_buffer_access,
|
.add_bounds_checks = robust_buffer_access,
|
||||||
};
|
};
|
||||||
|
|
||||||
void *mem_ctx = ralloc_context(NULL);
|
void *mem_ctx = ralloc_context(NULL);
|
||||||
|
@@ -532,7 +532,9 @@ anv_pipeline_lower_nir(struct anv_pipeline *pipeline,
|
|||||||
|
|
||||||
/* Apply the actual pipeline layout to UBOs, SSBOs, and textures */
|
/* Apply the actual pipeline layout to UBOs, SSBOs, and textures */
|
||||||
if (layout) {
|
if (layout) {
|
||||||
anv_nir_apply_pipeline_layout(pipeline, layout, nir, prog_data,
|
anv_nir_apply_pipeline_layout(&pipeline->device->instance->physicalDevice,
|
||||||
|
pipeline->device->robust_buffer_access,
|
||||||
|
layout, nir, prog_data,
|
||||||
&stage->bind_map);
|
&stage->bind_map);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user