anv: Put robust buffer access in the pipeline hash
It affects apply_pipeline_layout. Shaders compiled with the wrong value will work but they may not be robust as requested by the app. Cc: mesa-stable@lists.freedesktop.org Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
This commit is contained in:
@@ -446,6 +446,9 @@ anv_pipeline_hash_graphics(struct anv_pipeline *pipeline,
|
|||||||
if (layout)
|
if (layout)
|
||||||
_mesa_sha1_update(&ctx, layout->sha1, sizeof(layout->sha1));
|
_mesa_sha1_update(&ctx, layout->sha1, sizeof(layout->sha1));
|
||||||
|
|
||||||
|
const bool rba = pipeline->device->robust_buffer_access;
|
||||||
|
_mesa_sha1_update(&ctx, &rba, sizeof(rba));
|
||||||
|
|
||||||
for (unsigned s = 0; s < MESA_SHADER_STAGES; s++) {
|
for (unsigned s = 0; s < MESA_SHADER_STAGES; s++) {
|
||||||
if (stages[s].entrypoint)
|
if (stages[s].entrypoint)
|
||||||
anv_pipeline_hash_shader(&ctx, &stages[s]);
|
anv_pipeline_hash_shader(&ctx, &stages[s]);
|
||||||
@@ -466,6 +469,9 @@ anv_pipeline_hash_compute(struct anv_pipeline *pipeline,
|
|||||||
if (layout)
|
if (layout)
|
||||||
_mesa_sha1_update(&ctx, layout->sha1, sizeof(layout->sha1));
|
_mesa_sha1_update(&ctx, layout->sha1, sizeof(layout->sha1));
|
||||||
|
|
||||||
|
const bool rba = pipeline->device->robust_buffer_access;
|
||||||
|
_mesa_sha1_update(&ctx, &rba, sizeof(rba));
|
||||||
|
|
||||||
anv_pipeline_hash_shader(&ctx, stage);
|
anv_pipeline_hash_shader(&ctx, stage);
|
||||||
|
|
||||||
_mesa_sha1_final(&ctx, sha1_out);
|
_mesa_sha1_final(&ctx, sha1_out);
|
||||||
|
Reference in New Issue
Block a user