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
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
Marek Olšák
c9e4dc8d5e
gallium: pass cso_velems_state into cso_context instead of pipe_vertex_element
...
This removes one memcpy from the CSO hashing code.
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
6c90e39a5b
gallium/cso_hash: inline struct cso_hash_data
...
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
505cd5f12b
gallium/cso_hash: pack cso_node better
...
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
950ee0a370
mesa: remove unused "indirect" parameter from Driver.Draw
...
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
9556805ac4
i965: stop using "indirect" parameter from Driver.Draw (non-indirect)
...
The parameter will be removed.
v2: added UNUSED, removed "!!"
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
Caio Marcelo de Oliveira Filho
dab7a4d82c
anv: Remove unused field urb.total_size
...
This was used before the URB calculation functions were shared by GL
and Vulkan. Also drop the substruct for the remaining, `l3_config` is
a good name on its own.
Also-written-by: Jason Ekstrand <jason@jlekstrand.net >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3981 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3981 >
2020-02-27 14:45:10 -08:00
Alyssa Rosenzweig
0bb25e4713
pan/midgard: Use address analysis for globals, etc
...
..instead of opencoding for constants and doing the rest as ALU.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3978 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3978 >
2020-02-27 21:02:35 +00:00
Alyssa Rosenzweig
f5401cb886
pan/midgard: Add address analysis framework
...
Midgard has the ability to calculate addresses as part of the load/store
pipeline. We'd like to make use of this to avoid doing this work on the
ALU pipes. To do so, when emitting globals/SSBOs/shareds, we walk the
tree looking for address arithmetic to try to parse out something the
hardware can work with, letting the original instructions be DCE'd
ideally. This analysis is done at the NIR level to properly account for
some messy details of vectorization which we'd rather not poke at the
backend level. (Originally I wrote this as a MIR pass but I'm fairly
sure it was wrong.)
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3978 >
2020-02-27 21:02:35 +00:00
Alyssa Rosenzweig
658541a745
pan/midgard: Force address alignment
...
I thought we already had this but... maybe not..
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3978 >
2020-02-27 21:02:35 +00:00
Alyssa Rosenzweig
93ca47e046
pan/midgard: Round up bytemasks when promoting uniforms
...
Fixes crashes with uniform promotion in certain mixed type
circumstances.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3978 >
2020-02-27 21:02:35 +00:00
Alyssa Rosenzweig
fd888d351f
pan/midgard: Fix load/store argument sizing
...
The swizzles are as-if they were 32-bit regardless of the bitness of the
operation, but the source sizes can and do change depending on the
flags. Account for this in the analysis.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3978 >
2020-02-27 21:02:35 +00:00
Alyssa Rosenzweig
ee47ce6ac3
pan/midgard: Add LDST_ADDRESS property
...
Many load/store ops (used for globals, SSBOs, shared memory, etc) have
the ability to compute addresses directly. Mark off which ones behave
like this.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3978 >
2020-02-27 21:02:35 +00:00
Alyssa Rosenzweig
1a2bb78840
pan/midgard: Extract nir_ssa_index helper
...
In case we don't have a nir_src.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3978 >
2020-02-27 21:02:35 +00:00
Alyssa Rosenzweig
4e60dc8f48
pan/midgard: Partially fix 64-bit swizzle alignment
...
When mixing 32/64-bit, we need to align the 32-bit registers to get the
required alignment. This isn't quite enough yet, though, since user
swizzles could bypass and will need to be lowered to 32-bit moves
(outstanding todo).
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3978 >
2020-02-27 21:02:35 +00:00
Alyssa Rosenzweig
9c59f9f379
pan/midgard: Allow fusing inverted sources for inverted ops
...
It doesn't make a difference to the actual algorithm, so let's get rid
of them.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3978 >
2020-02-27 21:02:35 +00:00
Alyssa Rosenzweig
21c578027f
pan/midgard: Allow inverted inverted ops
...
We'd like to transform `inand.not` back to `iand` and so forth.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3978 >
2020-02-27 21:02:35 +00:00
Alyssa Rosenzweig
995e437105
panfrost: Increase SSBO/image limit from 4->8
...
Fixes an error compiling some shaders.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3978 >
2020-02-27 21:02:35 +00:00
Jonathan Marek
1046d73af1
etnaviv: disable INT_FILTER for ASTC
...
Tested on GC3000: INT_FILTER bit is incompatible with ASTC formats.
Signed-off-by: Jonathan Marek <jonathan@marek.ca >
Reviewed-by: Lucas Stach <l.stach@pengutronix.de >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3927 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3927 >
2020-02-27 20:31:45 +00:00
Caio Marcelo de Oliveira Filho
811990dc1c
anv: Remove unused field xfb_used from anv_pipeline
...
Since we only use xfb_info for GEN >= 8, make the ifdef cover that
local variable.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3973 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3973 >
2020-02-27 10:44:11 -08:00
Alyssa Rosenzweig
5491a13be9
panfrost: Add PAN_MESA_DEBUG=gles3 option
...
This enables experimental GLES3.0 support without ES3.1/2 hacks.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3950 >
2020-02-27 16:32:28 +01:00
Alyssa Rosenzweig
f5b6dfcb18
panfrost: Expose PIPE_CAP_PRIMITIVE_RESTART
...
It works just fine, we just forgot to expose the CAP.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3950 >
2020-02-27 16:32:23 +01:00
Alyssa Rosenzweig
2fea44c636
panfrost: Simplify stack shift calculation
...
I'm not sure why I never saw smaller values, but here you go.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3950 >
2020-02-27 16:32:17 +01:00
Alyssa Rosenzweig
40fd1f9da4
panfrost: Reserve an extra page for spilling
...
I'm not sure what this is for, but the blob does it and I'd rather not
poke farther than needed into hardware-internal details.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3950 >
2020-02-27 16:32:11 +01:00
Alyssa Rosenzweig
f37cec3275
panfrost: Default to 256 threads for TLS
...
I'm not sure where I got the impression 1024 was the right number. From
kbase:
#define THREAD_MT_DEFAULT 256
(where MT = "max threads" and the threads to allocate for TLS is <= max
threads). Let's cut out memory footprint for spilling by 75% :)
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3950 >
2020-02-27 16:32:05 +01:00
Alyssa Rosenzweig
f6ca7ea551
panfrost: Fix param getting
...
....Oops....
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3950 >
2020-02-27 16:32:00 +01:00
Alyssa Rosenzweig
4a10cfab76
panfrost: Don't set shared->unk0
...
This field controls the size of per-thread temporaries (somehow this is
separate from the regular stack for register spilling..), though I'm not
certain on the details. Regardless this value of 0x1e despite being used
in places by the blob seems wrong and is interfering with correct sizing
of the stack.
We don't use non-spilling scratchpad yet, so this is just here to fix
some details of spilling.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3950 >
2020-02-27 16:31:54 +01:00
Alyssa Rosenzweig
febabb0502
panfrost: Update spilling comment framebuffer->shared
...
All of this should apply equally with compute shaders, as far as I know.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3950 >
2020-02-27 16:31:48 +01:00
Alyssa Rosenzweig
03822a27e6
panfrost: Fix padded_vertex_count generation
...
These two cases were flipped from the notes, leading to underestimates
of the padded vertex count, manifesting as visual corruption (random
geometry messed up). This issue was raised when noticing the corruption
went away when dramaticlaly oversizing max_index on an instanced indexed
draw, and then checking that padded_count >= vertex_count -- which
turned out *not* to be the case on certain inputs, a clear issue. Hence
looking into this routine...
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3950 >
2020-02-27 16:31:42 +01:00
Alyssa Rosenzweig
23c8597172
panfrost: Fix gl_VertexID/InstanceID
...
Fixes a bunch of tests in dEQP-GLES3.functional.instanced.*.
Fixes: 027944c7c8 ("panfrost: Avoid reading GPU memory when packing
vertices")
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3950 >
2020-02-27 16:31:37 +01:00
Alyssa Rosenzweig
a0b90b45a9
pan/midgard: Don't spill near a branch
...
Fixes
dEQP-GLES2.functional.shaders.indexing.varying_array.vec2_dynamic_loop_write_
static_read with register pressure forced down.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3950 >
2020-02-27 16:31:32 +01:00
Alyssa Rosenzweig
ed52855680
pan/decode: Dump scratchpad size if present
...
This will help us narrow the size required for thread local storage.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3950 >
2020-02-27 16:31:06 +01:00
Alyssa Rosenzweig
d385c5840f
panfrost: Implement index buffer cache
...
For index bufer resources (not user index buffers), we're able to cache
results. In practice, the cache works pretty dang well. It's still
important that the min/max computation is efficient (since when the
cache misses it'll run at draw-time and we don't want jank), but this
can eliminate a lot of computations entirely.
We use a custom data structure for caching. Search is O(N) to the size
but sizes are capped so it's effectively O(1). Insertion is O(1) with
automatic oldest eviction, on the assumption that the oldest results are
the least likely to still be useful. We might also experiment with other
heuristics based on actual usage later.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3880 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3880 >
2020-02-27 10:30:48 +00:00