pipe_bits |= ANV_PIPE_UNTYPED_DATAPORT_CACHE_FLUSH_BIT;
}
break;
- case VK_ACCESS_2_SHADER_READ_BIT:
case VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT:
case VK_ACCESS_2_TRANSFER_READ_BIT:
case VK_ACCESS_2_SHADER_SAMPLED_READ_BIT:
*/
pipe_bits |= ANV_PIPE_TEXTURE_CACHE_INVALIDATE_BIT;
break;
+ case VK_ACCESS_2_SHADER_READ_BIT:
+ /* Same as VK_ACCESS_2_UNIFORM_READ_BIT and
+ * VK_ACCESS_2_SHADER_SAMPLED_READ_BIT cases above
+ */
+ pipe_bits |= ANV_PIPE_CONSTANT_CACHE_INVALIDATE_BIT |
+ ANV_PIPE_TEXTURE_CACHE_INVALIDATE_BIT;
+ if (!device->physical->compiler->indirect_ubos_use_sampler) {
+ pipe_bits |= ANV_PIPE_HDC_PIPELINE_FLUSH_BIT;
+ pipe_bits |= ANV_PIPE_UNTYPED_DATAPORT_CACHE_FLUSH_BIT;
+ }
+ break;
case VK_ACCESS_2_MEMORY_READ_BIT:
/* Transitioning a buffer for generic read, invalidate all the
* caches.
pipe_bits |= ANV_PIPE_UNTYPED_DATAPORT_CACHE_FLUSH_BIT;
}
break;
- case VK_ACCESS_2_SHADER_READ_BIT:
case VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT:
case VK_ACCESS_2_TRANSFER_READ_BIT:
case VK_ACCESS_2_SHADER_SAMPLED_READ_BIT:
*/
pipe_bits |= ANV_PIPE_TEXTURE_CACHE_INVALIDATE_BIT;
break;
+ case VK_ACCESS_2_SHADER_READ_BIT:
+ /* Same as VK_ACCESS_2_UNIFORM_READ_BIT and
+ * VK_ACCESS_2_SHADER_SAMPLED_READ_BIT cases above
+ */
+ pipe_bits |= ANV_PIPE_CONSTANT_CACHE_INVALIDATE_BIT |
+ ANV_PIPE_TEXTURE_CACHE_INVALIDATE_BIT;
+ if (!device->physical->compiler->indirect_ubos_use_sampler) {
+ pipe_bits |= ANV_PIPE_HDC_PIPELINE_FLUSH_BIT;
+ pipe_bits |= ANV_PIPE_UNTYPED_DATAPORT_CACHE_FLUSH_BIT;
+ }
+ break;
case VK_ACCESS_2_MEMORY_READ_BIT:
/* Transitioning a buffer for generic read, invalidate all the
* caches.