Jonathan Marek
c7ac1bcea0
turnip: increase array sizes in tu_descriptor_map
...
Pending the descriptor rework, this allows running the follow test:
dEQP-VK.renderpass.suballocation.attachment_sparse_filling.input_attachment_127
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Reviewed-by: Eric Anholt <eric@anholt.net >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3979 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3979 >
2020-02-28 14:04:20 +00:00
Jonathan Marek
d195eef05d
turnip: fall back to sysmem when attachments don't fit into gmem
...
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3979 >
2020-02-28 14:04:20 +00:00
Jonathan Marek
de3230e0a5
turnip: remove unnecessary fb size check
...
Framebuffer with 0 width or height is not valid.
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3979 >
2020-02-28 14:04:20 +00:00
Jonathan Marek
cf302c9a22
turnip: don't hardcode gmem base for input attachment
...
Newer a6xx no longer has programmable GMEM base, so we can't rely on the
kernel driver setting it to 0x100000 (GMEM base is 0 on such GPUs).
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3979 >
2020-02-28 14:04:20 +00:00
Jonathan Marek
6420406f19
turnip: fix srgb MRT
...
Register packing macros makes this only set the first bit. Set to whole
dword to fix srgb for color attachments >0.
Fixes: 59f29fc8 ("turnip: Convert the rest of tu_cmd_buffer.c over to the new pack macros.")
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3979 >
2020-02-28 14:04:20 +00:00
Jonathan Marek
8f9e1c6047
turnip: fix hw binning + render_area offset interaction
...
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3979 >
2020-02-28 14:04:20 +00:00
Jonathan Marek
de33c23370
turnip: minify image_view extent
...
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3979 >
2020-02-28 14:04:20 +00:00
Jonathan Marek
b18d6575fe
turnip: remove unecessary MRT_CONTROL fill
...
Hardware won't use MRT_CONTROL after mrt_count
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3979 >
2020-02-28 14:04:20 +00:00
Jonathan Marek
33b2db5fb9
turnip: move some constant state to tu6_init_hw
...
Also remove duplicates.
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3979 >
2020-02-28 14:04:20 +00:00
Jonathan Marek
7d27a9ffb3
turnip: check the right alignment requirement on shader iova
...
I had some trouble because I assumed this was right, tested that the
alignment requirement is actually 16.
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3979 >
2020-02-28 14:04:20 +00:00
Jonathan Marek
0f0662a551
turnip: add r5g5b5a1_unorm/b5g5r5a1_unorm formats
...
r5g5b5a1/b5g5r5a1 tiled/ubwc is the same as a1r5g5b5 (in memory), but
linear is read as 1_5_5_5 and written with 5_5_5_1 with swap.
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Reviewed-by: Eric Anholt <eric@anholt.net >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3806 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3806 >
2020-02-28 12:48:11 +00:00
Jonathan Marek
80ceebcdd1
turnip: rework format table to support r5g5b5a1_unorm/b5g5r5a1_unorm
...
These formats are an exception that can't be modeled in the current format
table. Switch to a table with only a single a6xx_format per vk format,
and deal with the exceptions separately (currently the only exception is
10_10_10_2_UNORM which has a different color format).
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3806 >
2020-02-28 12:48:11 +00:00
Jonathan Marek
89c6ef4233
util/format: add missing BC4/BC5 vulkan formats
...
Enables these formats for turnip.
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3806 >
2020-02-28 12:48:11 +00:00
Icecream95
339f127f2b
panfrost: LogicOp fixes and non 8-bit format support
...
With the previous LogicOp commit almost half of the blend modes were
broken because the surplus bits were not cleared after an inot.
v2:
- Remove u8 "fast path" as 8-bit is not well optimised yet
- Don't mask for 32-bit formats as that triggers an assert
Fixes: 068806c9f6 ("panfrost: LogicOp support")
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3943 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3943 >
2020-02-28 11:52:40 +00:00
Icecream95
574b03eebf
nir: Allow nir_format conversions to work on 32-bit values
...
The constant has to changed to unsigned long long, as shifting a
32-bit value by 32 is undefined behaviour.
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3943 >
2020-02-28 11:52:40 +00:00
Greg V
cf69b9635a
r600: add missing <array> include
...
Fixes error with clang/libc++:
../src/gallium/drivers/r600/sfn/sfn_emitaluinstruction.h:69:88: error: implicit instantiation of undefined template 'std::__1::array<unsigned char, 3>'
bool emit_alu_op3(const nir_alu_instr& instr, EAluOp opcode, std::array<uint8_t, 3> reorder={0,1,2});
Reviewed-by: Gert Wollny <gert.wollny@collabora.com >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3967 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3967 >
2020-02-28 11:30:39 +00:00
Dave Airlie
eb5227173f
llvmpipe: add support for tessellation shaders
...
This adds the hooks between llvmpipe and draw to enable tessellation shaders.
It also updates the CI results and docs.
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3841 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3841 >
2020-02-28 18:33:34 +10:00
Dave Airlie
a3257ae7be
gallium/nir/tgsi: only scan fragment shader inputs for usage_mask
...
The scanner doesn't work with tess shaders, but we don't need it for those,
in fact only frag shaders need it.
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3841 >
2020-02-28 18:33:34 +10:00
Dave Airlie
dacf8f5f5c
draw: hook up final bits of tessellation
...
This hooks tessellation into various parts of draw, so the
tessellation shaders are used in the correct places as the
last shader of the pipeline.
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3841 >
2020-02-28 18:33:34 +10:00
Dave Airlie
0d02a7b8ca
draw: add main tessellation code
...
This is the bulk of the llvm shader builders and tessellation
execution code.
TCS uses a coroutine launcher like compute shaders to handle
barriers. It executes 4-wide with one input vertex per lane.
Tessellation happens before the TES is run.
TES is just a 4-wide launcher, one per primitive is executed,
with one lane per tessellation coordinate input.
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3841 >
2020-02-28 18:33:34 +10:00
Dave Airlie
76daf893ea
draw: add JIT context/functions for tess stages.
...
This adds the initial draw_tess.h with a define needed
for the interfaces. TCS input array doesn't need to handle
patch inputs so can be smaller.
The TCS context has some dummy values to align the textures/images
properly.
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3841 >
2020-02-28 18:33:34 +10:00
Dave Airlie
3ecd496117
gallivm/nir: add tessellation i/o support.
...
This add support for the tessellation i/o callbacks.
Tessellation requires another level of indirect indexing,
and allows fetches from shader outputs.
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3841 >
2020-02-28 18:33:34 +10:00
Dave Airlie
70a7603b63
gallivm/tgsi/swr: add mask vec to the tcs store
...
For the nir paths we want to access the mask vector to only
store when the mask allows it.
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3841 >
2020-02-28 18:33:34 +10:00
Dave Airlie
87359d68a9
gallivm/nir: align store_var param order with load_var
...
This was ugly so align load/store to have mostly the same
parameter ordering
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3841 >
2020-02-28 18:33:34 +10:00
Dave Airlie
7898e37fb4
gallivm/nir: add support for tess system values
...
hooks up the tessellation specific system values in the NIR paths
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3841 >
2020-02-28 18:33:34 +10:00
Dave Airlie
c632d806cb
gallivm/nir: split out 64-bit splitting code
...
This just lets it be reused for tess later.
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3841 >
2020-02-28 18:33:34 +10:00
Dave Airlie
bd0188f9ea
gallium/auxiliary: add the microsoft tessellator and a pipe wrapper.
...
This adds the same tessellator code that swr uses, swr should
move to using this copy, unfortunately that wasn't trivial on my first
look.
The p_tessellator wrapper wraps it in a form that is a useful interface
for draw.
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3841 >
2020-02-28 18:33:34 +10:00
Samuel Pitoiset
bf16ff3172
radv: allow to capture SQTT traces with RADV_THREAD_TRACE=<start_frame>
...
This is pretty basic (and a bit crappy at the moment). I think we
might want some sort of overlay in the future and also be able to
trigger captures with F12 or whatever.
To record a capture, set RADV_THREAD_TRACE to something greater than
zero (eg. RADV_THREAD_TRACE=100 will capture frame #100 ). If the
driver didn't crash (or the GPU didn't hang), the capture file
should be stored in /tmp.
To open that capture, use Radeon GPU Profiler and enjoy your
profiling times with RADV! \o/
Note that thread trace support is quite experimental, only GFX9 is
supported at the moment, and a bunch of useful stuff are still missing
(shader ISA, pipelines info, etc). More is comming soon.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3900 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3900 >
2020-02-28 08:11:11 +01:00
Samuel Pitoiset
ed0c852243
radv: add initial SQTT files generation support
...
SQTT is also a file format (.rgp extension) that can be consumed
by Radeon GPU Profiler for profiling purposes.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3900 >
2020-02-28 08:11:07 +01:00
Samuel Pitoiset
b3ef07db96
radv: emit thread trace markers after every draw/dispatch call
...
Thread trace markers (also called events in Radeon GPU Profiler)
should be emitted after every draw/dispatch calls to collect data.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3900 >
2020-02-28 08:11:02 +01:00
Samuel Pitoiset
768d4f0551
radv: add initial SQ Thread Trace support for GFX9
...
SQTT is a hardware block that collects thread trace data (like
wave occupancy, timings, etc) for every draw/dispatch calls.
It's only supported on GFX9 at the moment but I will add other
generations support soon.
This is the first step towards profiling with RADV!
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3900 >
2020-02-28 08:10:55 +01:00
Samuel Pitoiset
94099ee642
radv: add a small helper that allows to submit internal CS
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3900 >
2020-02-28 08:10:53 +01:00
Samuel Pitoiset
dbbf49c8f3
ac/registers: add definitions for thread trace
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3900 >
2020-02-28 08:10:51 +01:00
Samuel Pitoiset
3de4f6c9f0
ac: add more fields to ac_gpu_info
...
For RGP traces.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3900 >
2020-02-28 08:10:37 +01:00
Eric Anholt
3c7c021ffc
ci: Enable -Werror on meson-vulkan and meson-testing.
...
I want to make sure that I don't introduce warnings in turnip where we
have active work going on, and I also want to make sure that the drivers
we care about testing are warnings-clean.
As with the previous -Werror change, this is for CI only and doesn't
affect end-user builds.
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com >
Reviewed-by: Eric Engestrom <eric@engestrom.ch >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3607 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3607 >
2020-02-27 21:59:34 -08:00
Eric Anholt
b9773631d3
aco: Fix signed-vs-unsigned warning.
...
The previous instance of this comparision was 1u to avoid the warning, fix
this one too.
Fixes: dba71de5c6 ("aco: only create parallelcopy to restore exec at loop exit if needed")
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3607 >
2020-02-27 21:59:31 -08:00
Marek Olšák
2976ae2717
gallium/u_vbuf: silence a warning by using unreachable
...
Reviewed-by: Eric Anholt <eric@anholt.net >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3970 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3970 >
2020-02-27 22:53:12 -05:00
Marek Olšák
ad192385e3
mesa: fix 11 warnings
...
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3970 >
2020-02-27 22:53:12 -05:00
Marek Olšák
6d7b076166
nir: fix 5 warnings
...
Reviewed-by: Eric Anholt <eric@anholt.net >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3970 >
2020-02-27 22:53:12 -05:00
Marek Olšák
0e25746dde
gallivm: fix 5 warnings
...
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3970 >
2020-02-27 22:53:12 -05:00
Marek Olšák
d18d07c9d7
nir: replace GCC unroll with an option that works on GCC < 8.0
...
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3970 >
2020-02-27 22:53:12 -05:00
Marek Olšák
1a61a5b1d4
mesa: fix incorrect prim.begin/end for glMultiDrawElements
...
This has no effect on Gallium, but it affects tnl.
Cc: 19.3 20.0 <mesa-stable@lists.freedesktop.org >
Reviewed-by: Mathias Fröhlich <mathias.froehlich@web.de >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3990 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3990 >
2020-02-28 00:53:45 +00:00
Marek Olšák
a1f4023443
mesa: optimize glMultiDrawArrays, call Draw only once (v2)
...
v2: use the macros
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3990 >
2020-02-28 00:53:45 +00:00
Marek Olšák
e636a062f1
mesa: don't unroll glMultiDrawElements if one count is 0
...
let the driver skip or submit an empty draw call.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3990 >
2020-02-28 00:53:45 +00:00
Marek Olšák
4c5cd113b8
mesa: clean up glMultiDrawElements code, use alloca for small draw count (v2)
...
v2: use calloc, add reusable macros
Reviewed-by: Mathias Fröhlich <mathias.froehlich@web.de > (v1)
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com > (v1)
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3990 >
2020-02-28 00:53:45 +00:00
Marek Olšák
b78ab9c741
mesa: move num_instances and base_instance out of _mesa_prim
...
They are never used by multi draws and internal draws.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3990 >
2020-02-28 00:53:45 +00:00
Marek Olšák
aaa758d3dd
mesa: remove redundant _mesa_prim::is_indexed
...
Instead, check (ib != NULL) like all other drivers.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3990 >
2020-02-28 00:53:45 +00:00
Marek Olšák
0c9850e55d
mesa/i965: remove _mesa_prim::indirect_offset
...
Only i965 was using it.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3990 >
2020-02-28 00:53:45 +00:00
Marek Olšák
f55ae2cdbe
gallium/u_threaded: convert dividing by index_size to a bit shift
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3990 >
2020-02-28 00:53:45 +00:00
Marek Olšák
28d75fc286
gallium/u_threaded: fix uploading user indices with start != 0
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3990 >
2020-02-28 00:53:45 +00:00