aco: Add storage class for Task Shader payload.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15161>
This commit is contained in:
Timur Kristóf 2022-02-25 09:22:04 +01:00
parent 962b2fe214
commit cd0dd5d6b7
3 changed files with 8 additions and 4 deletions

View file

@ -138,9 +138,10 @@ enum storage_class : uint8_t {
storage_image = 0x4,
storage_shared = 0x8, /* or TCS output */
storage_vmem_output = 0x10, /* GS or TCS output stores using VMEM */
storage_scratch = 0x20,
storage_vgpr_spill = 0x40,
storage_count = 8,
storage_task_payload = 0x20,/* Task-Mesh payload */
storage_scratch = 0x40,
storage_vgpr_spill = 0x80,
storage_count = 8, /* not counting storage_none */
};
enum memory_semantics : uint8_t {

View file

@ -219,6 +219,8 @@ print_storage(storage_class storage, FILE* output)
printed += fprintf(output, "%simage", printed ? "," : "");
if (storage & storage_shared)
printed += fprintf(output, "%sshared", printed ? "," : "");
if (storage & storage_task_payload)
printed += fprintf(output, "%stask_payload", printed ? "," : "");
if (storage & storage_vmem_output)
printed += fprintf(output, "%svmem_output", printed ? "," : "");
if (storage & storage_scratch)

View file

@ -613,7 +613,8 @@ perform_hazard_query(hazard_query* query, Instruction* instr, bool upwards)
/* Don't move memory accesses to before control barriers. I don't think
* this is necessary for the Vulkan memory model, but it might be for GLSL450. */
unsigned control_classes =
storage_buffer | storage_atomic_counter | storage_image | storage_shared;
storage_buffer | storage_atomic_counter | storage_image | storage_shared |
storage_task_payload;
if (first->has_control_barrier &&
((second->access_atomic | second->access_relaxed) & control_classes))
return hazard_fail_barrier;