intel/compiler: Create and use struct for TASK and MESH thread payloads

Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Acked-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18176>
This commit is contained in:
Caio Oliveira
2022-08-21 23:05:08 -07:00
committed by Marge Bot
parent 0ca65b3c4c
commit 7664c85b1d
4 changed files with 74 additions and 58 deletions

View File

@@ -133,6 +133,19 @@ struct fs_thread_payload : public thread_payload {
uint8_t local_invocation_id_reg[2];
};
struct task_mesh_thread_payload : public thread_payload {
task_mesh_thread_payload(const fs_visitor &v);
fs_reg extended_parameter_0;
fs_reg local_index;
fs_reg inline_parameter;
fs_reg urb_output;
/* URB to read Task memory inputs. Only valid for MESH stage. */
fs_reg task_urb_input;
};
/**
* The fragment shader front-end.
*
@@ -463,6 +476,11 @@ public:
return *static_cast<fs_thread_payload *>(this->payload_);
};
task_mesh_thread_payload &task_mesh_payload() {
assert(stage == MESA_SHADER_TASK || stage == MESA_SHADER_MESH);
return *static_cast<task_mesh_thread_payload *>(this->payload_);
}
bool source_depth_to_render_target;
bool runtime_check_aads_emit;