anv: Put robust buffer access in the pipeline hash
authorJason Ekstrand <jason.ekstrand@intel.com>
Wed, 21 Nov 2018 23:15:37 +0000 (17:15 -0600)
committerJason Ekstrand <jason.ekstrand@intel.com>
Thu, 22 Nov 2018 15:17:10 +0000 (09:17 -0600)
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>
src/intel/vulkan/anv_pipeline.c

index ad0f08253e72125a62e2d543b3f0afcb0875c0cd..f170366d0300939b32e9d9964a891bdbe63c259a 100644 (file)
@@ -446,6 +446,9 @@ anv_pipeline_hash_graphics(struct anv_pipeline *pipeline,
    if (layout)
       _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++) {
       if (stages[s].entrypoint)
          anv_pipeline_hash_shader(&ctx, &stages[s]);
@@ -466,6 +469,9 @@ anv_pipeline_hash_compute(struct anv_pipeline *pipeline,
    if (layout)
       _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);
 
    _mesa_sha1_final(&ctx, sha1_out);