Samuel Pitoiset
2aa705ec87
radv: determine the VS output parameters in the shader info pass
...
This can be determined earlier instead of duplicating code in both
compiler backends.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13119 >
2021-10-01 17:11:39 +00:00
Samuel Pitoiset
89f1117c62
radv: set export_clip_dists for the GS copy shader
...
This is needed for the next change to correctly compute the VS
output parameters from the shader info pass.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13119 >
2021-10-01 17:11:39 +00:00
Timur Kristóf
c53a1dff32
radv: Don't declare ngg_gs_state when there is no API GS.
...
This shader arg is only used when the pipeline has API GS,
so it is useless to declare it otherwise.
Also remove unused code from radv_declare_shader_args.
NGG is handled by the GS code path so these were never
actually used.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13129 >
2021-10-01 15:46:12 +00:00
Timur Kristóf
6ca66808b5
aco: Fix determining whether any culling is enabled.
...
Use 0xB instead of 0x00FFFFFF - this allows to jump over the culling
code when no actual culling is enabled but the ngg_cull_face_is_ccw
flag is set.
Fixes: 182d9b1e60
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13129 >
2021-10-01 15:46:12 +00:00
Timur Kristóf
c13a8d20f7
aco: Fix small primitive precision.
...
This is a mistake. It should use ngg_culling_settings
instead of ngg_gs_state.
Fixes: 182d9b1e60
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13129 >
2021-10-01 15:46:12 +00:00
Marek Olšák
fb8f532ea1
radeonsi: implement draw_vertex_state for lower display list overhead
...
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13050 >
2021-10-01 14:51:23 +00:00
Marek Olšák
73f7142ace
radeonsi: separate VBO descriptor code into a new function (for future work)
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13050 >
2021-10-01 14:51:23 +00:00
Marek Olšák
e78d7fe7d5
mesa: use pipe_vertex_state in vbo and st/mesa for lower display list overhead
...
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13050 >
2021-10-01 14:51:23 +00:00
Marek Olšák
f32cefdb87
st/mesa: make setup_arrays more reusable for future display list support
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13050 >
2021-10-01 14:51:23 +00:00
Marek Olšák
74cb74045f
st/mesa: add ST_PIPELINE_RENDER_NO_VARRAYS, for future display list support
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13050 >
2021-10-01 14:51:23 +00:00
Marek Olšák
7a2458f4bd
gallium/util: add util_vertex_state_cache for deduplicating the states
...
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13050 >
2021-10-01 14:51:23 +00:00
Marek Olšák
e8cad57aa7
gallium/trace: add pipe_vertex_state support
...
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13050 >
2021-10-01 14:51:23 +00:00
Marek Olšák
0842488859
gallium/u_threaded: implement draw_vertex_state
...
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13050 >
2021-10-01 14:51:23 +00:00
Marek Olšák
1c66de3239
gallium: add pipe_vertex_state and draw_vertex_state for display lists
...
The main motivation is to improve the score of viewperf13/snx.
This new interface is designed to be optimal for display lists as implemented
by the vbo module. It has much lower CPU overhead in the frontend, threaded
context, and the driver.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13050 >
2021-10-01 14:51:23 +00:00
Marek Olšák
d5218f0889
gallium/util: make pipe_vertex_buffer_reference safe for hashing dst
...
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13050 >
2021-10-01 14:51:23 +00:00
Marek Olšák
6e69acad82
util: import u_debug_refcnt, u_hash_table, u_debug_describe from gallium
...
to allow pipe_*_reference to be called in src/mesa/vbo.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13050 >
2021-10-01 14:51:23 +00:00
Marek Olšák
bec054ec63
util: add util_popcnt_inline_asm
...
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13050 >
2021-10-01 14:51:23 +00:00
Bas Nieuwenhuizen
0b92d4ec98
radv: Add GPU serialization of acceleration structures.
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12840 >
2021-10-01 13:43:28 +00:00
Bas Nieuwenhuizen
5a45e2e04d
radv: Add CPU serialization of acceleration structures.
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12840 >
2021-10-01 13:43:28 +00:00
Bas Nieuwenhuizen
0bf77a3fd1
radv: Add GPU copying of acceleration structures.
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12840 >
2021-10-01 13:43:28 +00:00
Bas Nieuwenhuizen
c7e0a8a6f7
radv: Add CPU copying of acceleration structures.
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12840 >
2021-10-01 13:43:28 +00:00
Bas Nieuwenhuizen
76fcd50e14
radv: Add GPU copy/serialization/deserialization shader.
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12840 >
2021-10-01 13:43:28 +00:00
Bas Nieuwenhuizen
6def6ba04e
radv: Add acceleration structure queries.
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12840 >
2021-10-01 13:43:28 +00:00
Bas Nieuwenhuizen
817b4a9aca
radv: Add copy/serialization info to accel struct headers.
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12840 >
2021-10-01 13:43:28 +00:00
Bas Nieuwenhuizen
c814e42c12
radv: Add an indirect dispatch struct to the header.
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12840 >
2021-10-01 13:43:28 +00:00
Bas Nieuwenhuizen
237a979419
radv: Add an internal indirect dispatch command.
...
Avoiding the entire buffer dance.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12840 >
2021-10-01 13:43:28 +00:00
Bas Nieuwenhuizen
8500e9e1f0
radv: Add DMA buffer update function for internal use.
...
Only split out the DMA part because that doesn't need the BO.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12840 >
2021-10-01 13:43:28 +00:00
Mike Blumenkrantz
5e9669650c
zink: break out surface info init to helper function
...
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13126 >
2021-10-01 13:27:50 +00:00
Mike Blumenkrantz
fed9243078
zink: make a local resource var in fb_clears_apply_internal
...
no functional changes
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13126 >
2021-10-01 13:27:50 +00:00
Tomeu Vizoso
0497d4aeef
panfrost/ci: Run Piglit's quick_gl tests on G52
...
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13063 >
2021-10-01 12:03:42 +00:00
Tomeu Vizoso
75212b3b34
ci: Rebuild kernel with Amlogic KMS support
...
So we can run Xorg for Piglit tests.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13063 >
2021-10-01 12:03:42 +00:00
Christian Gmeiner
8f118b5011
etnaviv: add etna_lookup_or_create_screen(..)
...
It is an improved version of etna_drm_screen_create_renderonly(..)
which also needs the gpu fd. Also switch etna_drm_screen_create(..)
and etna_drm_screen_create_renderonly(..) to use the new function.
This follows how other driver's winsys code looks like and fixes a
crash I when running piglit with PIGLIT_PLATFORM="gbm".
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Tested-by: Philipp Zabel p.zabel@pengutronix.de
Reviewed-by: Simon Ser <contact@emersion.fr>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12904 >
2021-10-01 10:13:32 +00:00
Christian Gmeiner
5328fc6ca3
etnaviv: extend screen_create(..) with gpu_fd
...
Decouples gpu fd and renderonly object. This opens the door for
some simplifications.
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Tested-by: Philipp Zabel p.zabel@pengutronix.de
Reviewed-by: Simon Ser <contact@emersion.fr>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12904 >
2021-10-01 10:13:32 +00:00
Christian Gmeiner
f096441359
etnaviv: allow screen creation with NULL renderonly object
...
Prep change for winsys cleanups.
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Tested-by: Philipp Zabel p.zabel@pengutronix.de
Reviewed-by: Simon Ser <contact@emersion.fr>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12904 >
2021-10-01 10:13:32 +00:00
Christian Gmeiner
e18ee14f3b
etnaviv: move drm version readout to drm layer
...
It fits here better.
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Tested-by: Philipp Zabel p.zabel@pengutronix.de
Reviewed-by: Simon Ser <contact@emersion.fr>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12904 >
2021-10-01 10:13:32 +00:00
Christian Gmeiner
075649a38d
etnaviv: fix indentation
...
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Tested-by: Philipp Zabel p.zabel@pengutronix.de
Reviewed-by: Simon Ser <contact@emersion.fr>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12904 >
2021-10-01 10:13:32 +00:00
Christian Gmeiner
f7168feb9b
etnaviv: fix leak of the screen hash table
...
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Tested-by: Philipp Zabel p.zabel@pengutronix.de
Reviewed-by: Simon Ser <contact@emersion.fr>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12904 >
2021-10-01 10:13:32 +00:00
Christian Gmeiner
61ddec23c5
etnaviv: use better name for fd hash table
...
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Tested-by: Philipp Zabel p.zabel@pengutronix.de
Reviewed-by: Simon Ser <contact@emersion.fr>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12904 >
2021-10-01 10:13:32 +00:00
Tapani Pälli
8cc4e0b0c4
anv: remove a format assert when setting up attachments
...
There are exceptions in spec where the framebuffer image format and
format given for render pass attachment may differ. This happens in
particular when subpass has resolve attachment that might resolve
only depth from a combined depth+stencil format. There the formats do
not need to match but be 'compatible' with each other.
As example using VK_FORMAT_D32_SFLOAT format is considered compatible
when actual framebuffer format is VK_FORMAT_D32_SFLOAT_S8_UINT.
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13082 >
2021-10-01 09:59:32 +00:00
Tony Wasserka
fa655b6f70
aco/spill: Use std::unordered_map for spills_entry
...
fossil-db on Navi14:
Totals from 305 (0.20% of 150305) affected shaders:
CodeSize: 5498340 -> 5498328 (-0.00%)
Instrs: 1009992 -> 1009989 (-0.00%)
Latency: 33922644 -> 33923018 (+0.00%)
InvThroughput: 9302963 -> 9303151 (+0.00%)
VClause: 19004 -> 19001 (-0.02%)
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11925 >
2021-10-01 09:39:13 +00:00
Tony Wasserka
3fad5efd15
aco/spill: Use unordered_map for spills_exit
...
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11925 >
2021-10-01 09:39:13 +00:00
Tony Wasserka
7368f16fe8
aco/spill: Clarify use of long-lived references by adding const
...
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11925 >
2021-10-01 09:39:13 +00:00
Tony Wasserka
a3ac3b231f
aco/spill: Reduce allocations in next_uses_per_block
...
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11925 >
2021-10-01 09:39:13 +00:00
Tony Wasserka
a6bcda6a01
aco/spill: Change worklist to a single integer
...
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11925 >
2021-10-01 09:39:13 +00:00
Tony Wasserka
e60a70dde0
aco/spill: Store remat list in an std::unordered_map instead of std::map
...
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11925 >
2021-10-01 09:39:13 +00:00
Tony Wasserka
4a78a05247
aco/spill: Replace an std::map to booleans with std::set
...
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11925 >
2021-10-01 09:39:13 +00:00
Tony Wasserka
112babc697
aco/spill: Reduce redundant std::map lookups
...
The previous code checked for element containment first and then performed
another map lookup upon element access. Instead, map::find can be used to
retrieve an iterator usable for element access with no extra lookup needed.
Furthermore, pure containment checks have been simplified using map::count.
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11925 >
2021-10-01 09:39:13 +00:00
Tony Wasserka
05163fd4f4
aco/spill: Avoid copying current_spills when not needed
...
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11925 >
2021-10-01 09:39:13 +00:00
Tony Wasserka
6650799ea5
aco/spill: Prefer unordered_map over map for next use distances
...
This changes the iteration order of next use distances, so some "random"
changes to shader metrics are expected.
fossil-db for Navi14:
Totals from 1239 (0.82% of 150305) affected shaders:
SpillSGPRs: 10559 -> 10562 (+0.03%); split: -0.05%, +0.08%
SpillVGPRs: 1632 -> 1863 (+14.15%)
CodeSize: 19321468 -> 19304164 (-0.09%); split: -0.09%, +0.01%
Instrs: 3593957 -> 3591647 (-0.06%); split: -0.07%, +0.01%
Latency: 103120695 -> 102475647 (-0.63%); split: -0.63%, +0.01%
InvThroughput: 23897614 -> 23575320 (-1.35%); split: -1.36%, +0.02%
VClause: 66406 -> 66943 (+0.81%); split: -0.01%, +0.81%
SClause: 118559 -> 118548 (-0.01%)
Copies: 310871 -> 308950 (-0.62%); split: -0.69%, +0.08%
Branches: 123386 -> 123413 (+0.02%); split: -0.00%, +0.03%
These numbers mostly come from parallel-rdp ubershaders. Small changes are
also found in the rdr2 and rage2 shader metrics, whereas others are not
significantly affected.
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11925 >
2021-10-01 09:39:13 +00:00
Tony Wasserka
4453bce770
aco/spill: Replace vector<map> with vector<vector> for local_next_use
...
While adding/removing elements is faster with std::map, the cost of container
copies (and the involved memory allocations) vastly outweigh that benefit in
this usage pattern.
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11925 >
2021-10-01 09:39:13 +00:00