Eric Engestrom
065691e299
nouveau: use existing list_first_entry() macro instead of re-writing it
...
Signed-off-by: Eric Engestrom <eric@igalia.com >
Acked-by: David Heidelberg <david.heidelberg@collabora.com >
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17772 >
2022-07-28 10:10:44 +00:00
Eric Engestrom
2c67457e5e
util/list: rename LIST_ENTRY() to list_entry()
...
This follows the Linux kernel convention, and avoids collision with
macOS header macro.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6751
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6840
Cc: mesa-stable
Signed-off-by: Eric Engestrom <eric@igalia.com >
Acked-by: David Heidelberg <david.heidelberg@collabora.com >
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17772 >
2022-07-28 10:10:44 +00:00
Danylo Piliaiev
a9ebf55d02
turnip: Simple breadcrumbs implementation to debug hangs
...
A simple implementations of breadcrumbs tracking of GPU progress
intended to be the last resort when debugging unrecoverable hangs.
For best results use Vulkan traces to have a predictable place of hang.
Requires compilation with TU_BREADCRUMBS_ENABLED=1. See tu_cs_breadcrumbs.c
for details on how to use this feature.
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15452 >
2022-07-28 08:48:39 +00:00
Marek Olšák
83d820973c
util/u_threaded: fix a CPU storage crash due to an invalid codepath taken
...
Fixes: 3df9d8ed80
- gallium/u_threaded: implement pipelined partial buffer uploads using CPU storage
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6837
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6594
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6613
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17556 >
2022-07-28 01:11:01 +00:00
Dave Airlie
62207cf885
lavapipe: enable VK_EXT_depth_range_unrestricted.
...
This passes all the VK CTS tests.
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17612 >
2022-07-28 10:36:01 +10:00
Dave Airlie
876db77bae
llvmpipe/fs: handle unrestricted depth values.
...
It moves the explicit clamping of incoming Z from vertex stages
after interp, to the depth clamp function.
It adds support to the depth clamp function to restrict incoming
Z values to 0..1 range.
It fixes the depth test conversions to allow unrestricted depth
values.
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17612 >
2022-07-28 10:36:00 +10:00
Dave Airlie
189755a9ac
util/pack_color: clamp depth values outside range for unorm formats.
...
For unrestricted depth ranges, depth clear values for unorm buffers
need to be explicitly clamped. However this has to happen in the
driver when we know the depth buffer format, not at the API level.
Just add clamps to the non-f32 cases and separate it out.
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17612 >
2022-07-28 10:35:04 +10:00
Dave Airlie
171e35de91
mesa/st: disable unrestricted fragment depth values for GL/GLES
...
GLES always clamps for 32-bit float buffers, GL doesn't require
it but setting this per API causes virgl to fail some tests.
To fix is properly we'd need to introduce a CAP to expose
this between host/guest.
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17612 >
2022-07-28 10:35:04 +10:00
Dave Airlie
0e38db0146
gallium: add a rasterizer state bit for unrestricted depth values.
...
This tells the drivers to expect depth values outside the 0..1 range.
This is used for support VK_EXT_depth_range_unrestricted, but could
also be used for GL_NV_depth_buffer_float in GL.
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17612 >
2022-07-28 10:35:04 +10:00
Dave Airlie
7d8942846d
llvmpipe: Allocate scene tiles dynamically
...
If you allocate this statically it's 1.5MB because the framebuffer might
be 16k x 16k, that's excessive.
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17746 >
2022-07-27 23:00:28 +00:00
Adam Jackson
b611195490
llvmpipe: Indentation fix
...
Reviewed-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17746 >
2022-07-27 23:00:28 +00:00
Dave Airlie
419b52f1de
util: add reallocarray wrapper for win32
...
Acked-by: Dylan Baker <dylan@pnwbakers.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17746 >
2022-07-27 23:00:28 +00:00
Brian Paul
c83bbbd860
llvmpipe: add some const qualifiers in lp_rast_linear_fallback.c
...
Signed-off-by: Brian Paul <brianp@vmware.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17561 >
2022-07-27 22:24:56 +00:00
Brian Paul
80f6a31ff3
llvmpipe: tighten up some code in lp_rast_linear_fallback.c
...
Signed-off-by: Brian Paul <brianp@vmware.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17561 >
2022-07-27 22:24:56 +00:00
Brian Paul
c7239dfe5d
llvmpipe: consolidate code in lp_rast_linear_fallback.c
...
Combine shade_quads_all() and shade_quads_mask() into new
shade_quads() function which takes a mask parameter. It calls either
jit_function[RAST_WHOLE] or jit_function[RAST_EDGE_TEST] depending on
the mask argument.
Signed-off-by: Brian Paul <brianp@vmware.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17561 >
2022-07-27 22:24:56 +00:00
Brian Paul
593282a9cd
llvmpipe: remove unneeded casts in lp_rast_linear_fallback.c
...
Signed-off-by: Brian Paul <brianp@vmware.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17561 >
2022-07-27 22:24:56 +00:00
Brian Paul
4f26e00795
llvmpipe: asst. clean-up in lp_rast_linear_fallback.c
...
Signed-off-by: Brian Paul <brianp@vmware.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17561 >
2022-07-27 22:24:56 +00:00
Brian Paul
abea663317
llvmpipe: pass frontfacing param to jit_function() call
...
Instead of 1, in shade_quads_all() and shade_quads_mask(). This fixes
a VMware test (dx10-is-front-face)
Signed-off-by: Brian Paul <brianp@vmware.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17561 >
2022-07-27 22:24:56 +00:00
Brian Paul
b66e567762
llvmpipe: minor whitespace clean-up in lp_state_fs.h
...
Signed-off-by: Brian Paul <brianp@vmware.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17561 >
2022-07-27 22:24:56 +00:00
Brian Paul
fb6aaaf2c3
llvmpipe: make opaque field a 1-bit field
...
Reduces sizeof(lp_fragment_shader_variant) from 296 to 288 bytes.
Signed-off-by: Brian Paul <brianp@vmware.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17561 >
2022-07-27 22:24:56 +00:00
Brian Paul
c9c5fc1e9a
gallivm: rename 'var' param in emit_store_reg(), emit_store_var().
...
Rename 'dst' param' to 'vals'. This parameter contains the values
which we're storing.
Signed-off-by: Brian Paul <brianp@vmware.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17561 >
2022-07-27 22:24:56 +00:00
Brian Paul
68616b1629
gallivm: fix incorrect memset() in SOA emit_load_const()
...
The memset() call to zero-out the unused elements of outval[] used
the wrong bytecount. Just replace it with a simpler for loop.
Signed-off-by: Brian Paul <brianp@vmware.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17561 >
2022-07-27 22:24:56 +00:00
Brian Paul
9984ec67f2
gallivm: simplify shuffling in emit_store_reg()
...
The writemask can be implemented with just one llvm vector shuffle.
Signed-off-by: Brian Paul <brianp@vmware.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17561 >
2022-07-27 22:24:56 +00:00
Brian Paul
ef7da4b292
gallivm: asst. clean-ups in lp_bld_swizzle.c
...
Signed-off-by: Brian Paul <brianp@vmware.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17561 >
2022-07-27 22:24:56 +00:00
Brian Paul
4a30155c72
llvmpipe: replace 'unsigned' with enum types
...
Signed-off-by: Brian Paul <brianp@vmware.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17561 >
2022-07-27 22:24:56 +00:00
Brian Paul
9bb062bade
llvmpipe: remove unneeded casts
...
Signed-off-by: Brian Paul <brianp@vmware.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17561 >
2022-07-27 22:24:56 +00:00
Brian Paul
1f96c24465
llvmpipe: asst. clean-ups in lp_state_setup.c
...
Signed-off-by: Brian Paul <brianp@vmware.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17561 >
2022-07-27 22:24:56 +00:00
Brian Paul
fc2f57ed76
llvmpipe: minor optimization in lp_linear_init_interp()
...
Skip multiplying by 1/w when it's 1.0.
Signed-off-by: Brian Paul <brianp@vmware.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17561 >
2022-07-27 22:24:55 +00:00
Brian Paul
ae9ec54f68
llvmpipe: asst. clean-ups in lp_linear_interp.c
...
Comments, move var decls, fix code formatting.
Signed-off-by: Brian Paul <brianp@vmware.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17561 >
2022-07-27 22:24:55 +00:00
Brian Paul
49966374c8
gallivm: asst. clean-ups in lp_bld_const.c
...
Signed-off-by: Brian Paul <brianp@vmware.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17561 >
2022-07-27 22:24:55 +00:00
Brian Paul
0e9cf32059
llvmpipe: asst. clean-ups in lp_setup_rect.c
...
Signed-off-by: Brian Paul <brianp@vmware.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17561 >
2022-07-27 22:24:55 +00:00
Brian Paul
55ca12fdd0
llvmpipe: minor white-space clean-up in lp_setup.h
...
Signed-off-by: Brian Paul <brianp@vmware.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17561 >
2022-07-27 22:24:55 +00:00
Brian Paul
aba7554f39
llvmpipe: asst. clean-up in lp_bld_depth.c
...
Signed-off-by: Brian Paul <brianp@vmware.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17561 >
2022-07-27 22:24:55 +00:00
David Heidelberg
3b595bf50f
mailmap: fix order of emails for Axel Davy
...
Reviewed-by: Axel Davy <davyaxel0@gmail.com >
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17698 >
2022-07-27 21:36:23 +00:00
David Heidelberg
57841823a1
nine: char can be unsigned on non-x86 platforms
...
Keep sign by using int8_t to get the same result on non-x86 machines.
Reviewed-by: Axel Davy <davyaxel0@gmail.com >
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17698 >
2022-07-27 21:36:23 +00:00
Icecream95
e041a0d1e6
nine: Only enable thread_submit by default on x86
...
Possibly the bug breaking this is in box86, but given that there
aren't a whole lot of other reasons to be using Nine with a non-x86
Mesa, disable the feature unless we are running on x86.
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17698 >
2022-07-27 21:36:23 +00:00
Icecream95
57dea11e7c
nine: Make vdecl_index_map always signed
...
vdecl_index_map needs to be able to store negative values, but char is
not signed on all platforms, so change it to int8_t.
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17698 >
2022-07-27 21:36:23 +00:00
Dave Airlie
5aafe29aee
zink/llvmpipe/ci: skip broken CTS ballot test.
...
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17588 >
2022-07-27 20:58:56 +00:00
Dave Airlie
9bbc3c4e85
zink: fixup subgroup vote/ballot enables.
...
These are part of vulkan 1.1, but the ext are if you don't have 1.1.
This will enable some tests that break in CI
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17588 >
2022-07-27 20:58:56 +00:00
Dave Airlie
8be15cc382
lavapipe: expose some subgroup extensions
...
These are part of vulkan 1.2, but expose them to be nice.
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17588 >
2022-07-27 20:58:56 +00:00
Dave Airlie
41e87c5c9a
llvmpipe: export ARB_shader_ballot
...
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17588 >
2022-07-27 20:58:56 +00:00
Dave Airlie
a2cd47acdb
gallivm: fix casting around read invocation.
...
Fixes zink KHR-GL46.shader_ballot_tests.ShaderBallotAvailability
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17588 >
2022-07-27 20:58:55 +00:00
Dave Airlie
ce65e0428a
gallivm: use progress from subgroup lowering.
...
This makes sure the pack lowering gets called again.
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17588 >
2022-07-27 20:58:55 +00:00
Connor Abbott
9b844d7c42
tu: Add debug option to use emulated renderpass support
...
This should be useful for stress-testing dynamic rendering.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17378 >
2022-07-27 19:40:44 +00:00
Connor Abbott
b90d628a7d
tu: Use common vk_image_view base struct
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17378 >
2022-07-27 19:40:44 +00:00
Connor Abbott
89263fde20
tu: Use common vk_image struct
...
This eliminates some boilerplate, and will be necessary to use the
common render pass implementation for debugging purposes.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17378 >
2022-07-27 19:40:44 +00:00
Connor Abbott
cb0f414b2a
tu: Add support for suspending and resuming renderpasses
...
This is unfortunately very complicated because we have to stitch
together the state of the suspended passes after the fact, with primary
command buffers at submit time.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17378 >
2022-07-27 19:40:44 +00:00
Connor Abbott
0a4c86fc44
util/trace: Fix u_trace_*_iterator with no tracepoints
...
If u_trace is empty then there are no chunks, and we didn't account for
that case.
This fixes tracing some dynamic rendering tests.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17378 >
2022-07-27 19:40:44 +00:00
Connor Abbott
3aa20a4409
tu: Split out some state into a separate struct
...
These bits of state will have to be treated specially when
suspending/resuming a render pass, because they will need to be tracked
across command buffers.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17378 >
2022-07-27 19:40:44 +00:00
Connor Abbott
9689433eee
tu: Update more state with secondaries
...
Some of these are actually bugfixes, some like the drawcall information
are just for autotune so they are just performance fixes. However this
came from an audit into what state is used in CmdEndRenderPass().
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17378 >
2022-07-27 19:40:44 +00:00