Faith Ekstrand
b3d6dafc7d
nak: Implement integer comparisons
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
ac2a56f56f
nak: Add support for instruction predicates
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
de073a10e6
nak: Implement 32-bit logic ops
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
8cf12d6a3f
nak: Add a pass for computing instruction dependencies
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
93eb2f884a
nak: Implement iadd and ishl
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
241caaf5ff
nak: Add an instruction fuzzing tool
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
90d3fd10e1
nak: Zero out the .w component of descriptors
...
This saves us from having to constantly add it in as we compute
addresses.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
c212506771
nak: Implement load/store_global
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
c76331fb51
nak: Implement load_ubo
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
62f5e65c80
nak: Implement load_sysval_nv as S2R
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
fb96aaf3fa
nak: Lower system values to a new load_sysval_nak intrinsic
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
481a29a912
nak: Header stuff
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:07 +00:00
Faith Ekstrand
80376146ed
nak: Encode program headers
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:06 +00:00
Faith Ekstrand
50b1deefa7
nak: Add encoding for a few instructions
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:06 +00:00
Faith Ekstrand
83f8d6e2a7
nak: Add bitset infrastructure
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:06 +00:00
Faith Ekstrand
812255fc79
nak: Add a lowering pass for ZERO sources and destinations
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:06 +00:00
Faith Ekstrand
f694f1f8a8
nak: Add a lowering pass for VEC and SPLIT instructions
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:06 +00:00
Faith Ekstrand
d44b31f3bf
nak: Add a trivial register allocator
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:06 +00:00
Faith Ekstrand
08eb906111
nak: Add a util library
...
Currently, all we do here is implement div_ceil() and next_multiple_of()
because these helpers are super useful but currently an experimental
Rust feature. This should be a drop-in for the feature so we can delete
it once the feature stabilizes with little to no effect.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:06 +00:00
Faith Ekstrand
4e95cb908f
nak: Add a dead-code pass
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:06 +00:00
Faith Ekstrand
9769f19c7e
nak: Add a copy-prop pass
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:06 +00:00
Faith Ekstrand
5585f57c5c
nak: Add initial translation from NIR
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:06 +00:00
Faith Ekstrand
a4a5fe2270
nak: Add Rust bindings for NIR
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:06 +00:00
Faith Ekstrand
771d9c8856
nak: Add the core IR
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:06 +00:00
Faith Ekstrand
62695614d7
nvk: Run shaders through NAK
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:06 +00:00
Faith Ekstrand
79ff2d9a33
nak: Add initial stubs for rust code
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:06 +00:00
Faith Ekstrand
c778d39fa4
nak: Add a bunch of shader lowering code in NIR
...
The nifty thing about the way NVIDIA hardware does inputs and outputs is
that it maps really well to how we do them in NIR. We can make the
driver_locations match exactly to the attribute address space. For
fragment shader outputs, we make them register numbers.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:06 +00:00
Faith Ekstrand
1b70f39ef6
nak: Copy the optimization loop from Intel
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:06 +00:00
Faith Ekstrand
40f9327c8a
nouveau: Add initial headers and meson for the new compoiler
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998 >
2023-11-14 00:48:06 +00:00
Jesse Natalie
9ef621ec2e
d3d12: ARB_query_buffer_object and GL4.4
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26156 >
2023-11-14 00:18:53 +00:00
Jesse Natalie
6384ccd1cd
d3d12: Reference count queries in a batch
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26156 >
2023-11-14 00:18:53 +00:00
Jesse Natalie
9caea4c3e9
d3d12: Enable ARB_enhanced_layouts and ARB_texture_mirror_clamp_to_edge
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26156 >
2023-11-14 00:18:53 +00:00
Jesse Natalie
707cdac7e7
d3d12: Fix GS variant I/O slot counts
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26156 >
2023-11-14 00:18:53 +00:00
Jesse Natalie
9fe88dd9b9
d3d12: Support enhanced layouts for VS inputs
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26156 >
2023-11-14 00:18:53 +00:00
Jesse Natalie
72341747f4
d3d12: Split dvec3 interpolatns into devc2 and double
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26156 >
2023-11-14 00:18:53 +00:00
Jesse Natalie
1aa56d486c
d3d12: Fix location_frac_mask bitfield size
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26156 >
2023-11-14 00:18:53 +00:00
Jesse Natalie
c77f8b4db0
microsoft/compiler: Stop lowering all I/O to temps
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26156 >
2023-11-14 00:18:53 +00:00
Jesse Natalie
d6dea13231
microsoft/compiler: When packing fractional inputs, find a row with space for it
...
Enables vertex attributes to overlap (as GL requires) when using
enhanced layouts with explicit component packing.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26156 >
2023-11-14 00:18:52 +00:00
Jesse Natalie
d7bc277726
microsoft/compiler: Don't use 64-bit types for signature entries
...
HLSL can't declare these, and the DXIL accesses them as i32 anyway.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26156 >
2023-11-14 00:18:52 +00:00
Jesse Natalie
2334ff67b7
microsoft/compiler: Don't declare PS output registers split across variables
...
DXIL doesn't support that. Color targets need to be float4s.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26156 >
2023-11-14 00:18:52 +00:00
Jesse Natalie
adc7caa3ec
microsoft/compiler: Bump signature limits for 32 rows of 4 components
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26156 >
2023-11-14 00:18:52 +00:00
Sagar Ghuge
ee48b12a8f
anv: Avoid emitting PIPE_CONTROL command for copy/video queue
...
Avoid emitting PIPE_CONTROL instruction since Copy/Video doesn't support
it.
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26121 >
2023-11-13 23:43:27 +00:00
Sagar Ghuge
8c9a7f7730
anv: Write timestamp using MI_FLUSH_DW on blitter
...
On Blitter engine, we don't support PIPE_CONTROL, we have to update
memory locations using the MI_FLUSH_DW command.
v2:
- Handle video queue (Lionel)
Fixes: 056b0cb87f ("anv: add video engine support in various places")
Fixes: 5112b42146 ("anv: Handle end of pipe with MI_FLUSH_DW on transfer queue")
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26121 >
2023-11-13 23:43:27 +00:00
Caio Oliveira
dcb68de656
intel/compiler: Clear up block instructions before re-adding them
...
Avoids fixing up list pointers that we don't care about anymore -- since
all the instructions will be re-added in a different order anyway.
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25841 >
2023-11-13 23:05:47 +00:00
Caio Oliveira
a9f95bf687
intel/compiler: Reuse same scheduler for all pre-RA scheduling modes
...
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25841 >
2023-11-13 23:05:47 +00:00
Caio Oliveira
0dd5378ffe
intel/compiler: Make scheduler classes take an external mem_ctx
...
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25841 >
2023-11-13 23:05:47 +00:00
Caio Oliveira
04aa2df461
intel/compiler: Separate schedule_node temporary data
...
Some fields in schedule_node will need to be reset each time they are
used. The `cand_generation` needs to be back to zero, and both
`unblocked_time` and `parent_count` need to be back to their initial
values, which were pre-calculated.
Rename the initial data fields and add new ones for the temporary data.
Note the helper function is `per node` to allow it "tag along" with an
existing loops.
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25841 >
2023-11-13 23:05:47 +00:00
Caio Oliveira
81594d0db1
intel/compiler: Move earlier scheduler code that is not mode-specific
...
This will be useful later on when we reuse the same scheduler for
multiple modes.
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25841 >
2023-11-13 23:05:47 +00:00
Caio Oliveira
73d4e4118a
intel/compiler: Tidy up code in scheduler related to reads_remaining
...
- Just assert in functions we expect it to exist
- Predicate usage with `!post_reg_alloc` to avoid suggest there are more
combinations.
- Reuse an existing loop to call the count function.
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25841 >
2023-11-13 23:05:47 +00:00
Caio Oliveira
4f246cf4e7
intel/compiler: Merge child/latency arrays in schedule_node
...
Values are used together, saves one pointer in schedule_node,
reduces amount of reallocations when children count grows.
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25841 >
2023-11-13 23:05:47 +00:00