Caio Oliveira
3670c24740
intel/brw: Replace uses of fs_reg with brw_reg
...
And remove the fs_reg alias.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29791 >
2024-07-03 02:53:19 +00:00
Caio Oliveira
d00329e821
intel/brw: Replace some fs_reg constructors with functions
...
Create three helper functions for ATTR, UNIFORM and VGRF creation.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29791 >
2024-07-03 02:53:18 +00:00
Kenneth Graunke
873fcdff38
intel/brw: Stop using long BRW_REGISTER_TYPE enum names
...
s/BRW_REGISTER_TYPE/BRW_TYPE/g
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28847 >
2024-04-25 11:41:48 +00:00
Francisco Jerez
c4325f426c
intel/brw/xe2+: Setup PS thread payload registers required for ALU-based pixel interpolation.
...
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28306 >
2024-03-20 15:46:44 -07:00
Francisco Jerez
6427f16074
intel/brw/gfx12: Setup PS thread payload registers required for ALU-based pixel interpolation.
...
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28306 >
2024-03-20 15:46:44 -07:00
Caio Oliveira
d9552fccf2
intel/brw: Remove extra stage_prog_data field in fs_visitor
...
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27861 >
2024-02-29 19:28:06 +00:00
Caio Oliveira
dae59e7078
intel/brw: Remove runtime_check_aads_emit
...
It was used for Gfx4 payload.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27691 >
2024-02-28 05:45:39 +00:00
Caio Oliveira
2a1c2a1bf1
intel/brw: Remove Gfx8- code from thread payload
...
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27691 >
2024-02-28 05:45:38 +00:00
Caio Oliveira
7d85d2c7fd
intel/compiler: Rename DISPATCH_MODE_* enums to INTEL_DISPATCH_MODE_*
...
And move to the intel_shader_enums.h file.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27475 >
2024-02-14 22:31:23 -08:00
Kenneth Graunke
2e38024fd8
intel: Use hardware generated compute shader local invocation IDs
...
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27167 >
2024-01-25 08:43:04 +00:00
Sagar Ghuge
6fcec87090
intel/fs: Track instance id in gs_thread_payload
...
This change moves the instance id gs_thread_payload constructor and
lowering code will simply use that.
Also, this change takes the Xe2 register width in consideration that
fixes a couple of tests involving geometry shaders with gl_InvocationID
on Xe2.
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26960 >
2024-01-22 22:15:38 +00:00
Francisco Jerez
ef6ef7aa8e
intel/fs/xe2+: Implement PS thread payload register offset setup.
...
The PS thread payload format has changed enough in Xe2 that it
probably doesn't make sense to share code with gfx6. See BSpec page
"PS Thread Payload for Normal Dispatch - 512 bit GRF" for the new
format.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26606 >
2023-12-28 11:07:03 -08:00
Francisco Jerez
4672fcbc76
intel/fs: Fix PS thread payload setup for depth_w_coef_reg.
...
It's not replicated per SIMD16 half of a SIMD32 thread on the PS
payload. Make fs_visitor::payload::depth_w_coef_reg a scalar rather
than an array.
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26585 >
2023-12-22 18:05:31 +00:00
Caio Oliveira
38a42e5aa1
intel/compiler: Add ctor to fs_builder that just takes the shader
...
Uses the dispatch_width from the shader (fs_visitor). This was not
possible before because the dispatch_width was not part of
backend_shader.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26323 >
2023-12-12 19:36:14 +00:00
Caio Oliveira
cf730adc58
intel/compiler: Make fs_builder include fs_visitor and not the other way
...
This will allow fs_builder have a reference to an fs_visitor (a
"fs_shader" really), instead of a reference to a backend_shader.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26323 >
2023-12-12 19:36:14 +00:00
Caio Oliveira
5de5a0d475
intel/compiler: Don't use fs_visitor::bld in thread payload classes
...
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26301 >
2023-11-28 19:53:51 +00:00
Marcin Ślusarz
ea92bd8d44
intel/compiler: mask GS URB handles at thread payload construction
...
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25195 >
2023-09-27 23:57:25 +00:00
Marcin Ślusarz
ee4214de6e
intel/compiler/mesh: fix position of output URB handle for xe2
...
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25195 >
2023-09-27 23:57:25 +00:00
Caio Oliveira
dd632bf527
intel/fs/xe2+: Update TASK/MESH payload setup for Xe2 reg size.
...
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25020 >
2023-09-20 17:19:36 -07:00
Caio Oliveira
8944ac7d6c
intel/fs/xe2+: Update BS payload setup for Xe2 reg size.
...
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25020 >
2023-09-20 17:19:36 -07:00
Francisco Jerez
14e1b9ee69
intel/fs/xe2+: Update TES payload setup for Xe2 reg size.
...
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25020 >
2023-09-20 17:19:36 -07:00
Francisco Jerez
4b3243104c
intel/fs/xe2+: Update TCS payload setup for Xe2 reg size.
...
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25020 >
2023-09-20 17:19:36 -07:00
Francisco Jerez
6195eac210
intel/fs/xe2+: Update GS payload setup for Xe2 reg size.
...
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25020 >
2023-09-20 17:19:36 -07:00
Ian Romanick
0b23df3951
intel/compiler/xe2: Update fs_visitor::setup_vs_payload to account for Xe2 reg size
...
[ Francisco Jerez: Simplify. ]
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25020 >
2023-09-20 17:19:36 -07:00
Rohan Garg
e1289d6135
intel/compiler: Adjust CS payload registers for new register width on Xe2+
...
Signed-off-by: Rohan Garg <rohan.garg@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25020 >
2023-09-20 17:19:36 -07:00
Lionel Landwerlin
429ef02f83
intel/fs: make tcs input_vertices dynamic
...
We need to do 3 things to accomplish this :
1. make all the register access consider the maximal case when
unknown at compile time
2. move the clamping of load_per_vertex_input prior to lowering
nir_intrinsic_load_patch_vertices_in (in the dynamic cases, the
clamping will use the nir_intrinsic_load_patch_vertices_in to
clamp), meaning clamping using derefs rather than lowered
nir_intrinsic_load_per_vertex_input
3. in the known cases, lower nir_intrinsic_load_patch_vertices_in
in NIR (so that the clamped elements still be vectorized to the
smallest number of URB read messages)
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22378 >
2023-05-24 18:32:07 +00:00
Marcin Ślusarz
512126b26d
intel/compiler: remove unused field from fs_thread_payload
...
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20957 >
2023-02-23 08:04:24 +00:00
Marcin Ślusarz
15afb8dcc6
intel/compiler/mesh: apply URB payload mask once per program
...
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21098 >
2023-02-21 11:10:23 +00:00
Jason Ekstrand
43ca7f4178
intel/compiler: Convert brw_wm_aa_enable to brw_sometimes
...
There are other cases where we want a tri-state logic like this. May as
well have one enum for all the cases.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21094 >
2023-02-06 09:12:17 +00:00
Caio Oliveira
e612f32e1a
intel/compiler: Use brw_ud* helpers in thread payload code
...
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18176 >
2022-09-13 01:44:24 +00:00
Caio Oliveira
0b6e613de8
intel/compiler: Create and use struct for CS thread payload
...
Move subgroup_id, that's only used by CS for verx10 < 125, as part of
the payload too -- even though is not, strictly speaking.
Note the thread execution of Task/Mesh is similar enough, so we make
their common struct inherit from cs_thread_payload.
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18176 >
2022-09-13 01:44:24 +00:00
Caio Oliveira
9de790760e
intel/compiler: Create and use struct for Bindless thread payload
...
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Acked-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18176 >
2022-09-13 01:44:24 +00:00
Caio Oliveira
a70378f292
intel/compiler: Store start of ICP handles in GS thread payload struct
...
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Acked-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18176 >
2022-09-13 01:44:24 +00:00
Caio Oliveira
5b6987daee
intel/compiler: Create and use struct for GS thread payload
...
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Acked-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18176 >
2022-09-13 01:44:24 +00:00
Caio Oliveira
7664c85b1d
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 >
2022-09-13 01:44:24 +00:00
Caio Oliveira
0ca65b3c4c
intel/compiler: Create and use struct for VS thread payload
...
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 >
2022-09-13 01:44:24 +00:00
Caio Oliveira
19c6e1b447
intel/compiler: Create and use struct for TES thread payload
...
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 >
2022-09-13 01:44:24 +00:00
Caio Oliveira
eb837dd23b
intel/compiler: Store start of ICP handles in TCS thread payload struct
...
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 >
2022-09-13 01:44:24 +00:00
Caio Oliveira
2622fc3af1
intel/compiler: Store Primitive ID in TCS thread payload struct
...
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 >
2022-09-13 01:44:24 +00:00
Caio Oliveira
9a9b1119b4
intel/compiler: Store Patch URB output in TCS thread payload struct
...
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 >
2022-09-13 01:44:24 +00:00
Caio Oliveira
e21359ed0e
intel/compiler: Create struct for TCS thread payload
...
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 >
2022-09-13 01:44:24 +00:00
Caio Oliveira
73920b7e2f
intel/compiler: Use FS thread payload only for FS
...
Move the setup into the FS thread payload constructor. Consolidate
payload setup for that in brw_fs_thread_payload.cpp file.
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18176 >
2022-09-13 01:44:24 +00:00