Eric Anholt
ef9362acb8
gallium/osmesa: Return cleanly for OSMesaGetDepthBuffer() with no depth.
...
This makes our behavior match classic.
Closes : #2034
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7886 >
2020-12-04 16:01:00 -08:00
Eric Anholt
ddbad3f4ea
gallium/osmesa: Fix leak of the ST manager/api on library unload.
...
Closes : #883
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7886 >
2020-12-04 16:00:58 -08:00
Eric Anholt
bc3142734e
gallium/osmesa: Fix data race on setting up the ST API.
...
We're going to need it anyway, put it in the same call_once as the ST
manager.
Closes : #880
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7886 >
2020-12-04 16:00:56 -08:00
Eric Anholt
26c6f6cfbb
gallium/osmesa: Remove the broken buffer-reuse scheme.
...
Besides leaking and a lack of thread-safety, it would also incorrectly
share front buffers if multiple contexts happened to use the same
size/format, as demonstrated by the new unit test.
Closes : #2035
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7886 >
2020-12-04 16:00:47 -08:00
Eric Anholt
c5c1aa7c75
gallium/osmesa: Fix flushing and Y-flipping of the depth buffer.
...
We were returning a pointer to use-after-free the depth buffer, not
updating it in after future rendering, and also not y flipping it. A
little refactor to mostly reuse the color buffer's path makes it easy to
do it all right.
Adds a unit test to check for these bugs.
Closes : #885
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7886 >
2020-12-04 15:59:59 -08:00
Mike Blumenkrantz
0223552fa0
zink: assert all index values in ntv OpAccessChain constructor
...
this is super annoying
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7933 >
2020-12-04 17:16:03 -05:00
Eric Anholt
b4ae9e07cd
xmlconfig: Warn if parsing the engine/app versions fails.
...
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7048 >
2020-12-04 21:32:17 +00:00
Eric Anholt
1618bd1bee
xmlconfig: Add unit tests for recent bugs in the driconf rewrite.
...
This covers:
7fb4ab9ec1 ("driconf: Restore the ability to override driconf with the environment.")
2b977adff8 ("xmlconfig: fix scandir_filter")
and touches a bit more of drirc logic while I'm here.
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7048 >
2020-12-04 21:32:17 +00:00
Rhys Perry
c553084bf9
aco: remove rollback code when making an instruction vop3
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7656 >
2020-12-04 20:27:32 +00:00
Rhys Perry
349908587f
aco: move update_renames() out of get_reg()
...
This is necessary for the next commit, which will pass a temporary copy of
the register file to get_reg().
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7656 >
2020-12-04 20:27:31 +00:00
Rhys Perry
8794f0348a
aco: remove rollback code for blocked fixed definitions
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7656 >
2020-12-04 20:27:31 +00:00
Rhys Perry
6f7cb47ad8
aco: remove rollback code around parallelcopy creation
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7656 >
2020-12-04 20:27:31 +00:00
Rhys Perry
9177fe8356
aco: simplify get_reg_impl()
...
Instead of copying the reg file as a backup, copy it so that we can remove
the rollback/undo code.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7656 >
2020-12-04 20:27:31 +00:00
Rhys Perry
5c9d2ed78d
aco: use clear() helper instead of writing reg file directly
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7656 >
2020-12-04 20:27:31 +00:00
Rhys Perry
d671cf7f53
aco: repeat get_reg_create_vector() with increased register demand if fail
...
We don't need rollback/undo code here because get_reg_create_vector() now
creates a temporary copy of the register file.
Works around RA failure with a bunch of dEQP-VK.robustness.robustness2.*
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3566
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7656 >
2020-12-04 20:27:31 +00:00
Rhys Perry
ebd8ab1757
aco: remove rollback code in get_reg_create_vector()
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7656 >
2020-12-04 20:27:31 +00:00
Rhys Perry
ad26eae544
aco: don't fill killed operands in update_renames()
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7656 >
2020-12-04 20:27:31 +00:00
Rhys Perry
67860b99ce
aco: clear operands in update_renames()
...
In the future, they might not have already been cleared.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7656 >
2020-12-04 20:27:31 +00:00
Marijn Suijten
f173bf1be9
util: Do not insert uninitialized data if Android property is not set
...
This prevents funky segfaults in seemingly unrelated codepaths like:
pid: 20058, tid: 20086, name: Binder:20058_2 >>> /system/bin/surfaceflinger <<<
uid: 1000
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x184
Cause: null pointer dereference
[...]
#00 pc 000000000020b078 /vendor/lib64/dri/gallium_dri.so (ir3_shader_variant+56)
#01 pc 00000000001dc168 /vendor/lib64/dri/gallium_dri.so (fd5_draw_vbo+920)
#02 pc 00000000001a30f8 /vendor/lib64/dri/gallium_dri.so (fd_draw_vbo+1264)
#03 pc 000000000077e714 /vendor/lib64/dri/gallium_dri.so (util_primconvert_draw_vbo+596)
#04 pc 00000000001a2d60 /vendor/lib64/dri/gallium_dri.so (fd_draw_vbo+344)
#05 pc 00000000007671e4 /vendor/lib64/dri/gallium_dri.so (dd_context_draw_vbo+300)
#06 pc 00000000007b6c9c /vendor/lib64/dri/gallium_dri.so (u_vbuf_draw_vbo+2268)
#07 pc 000000000074d230 /vendor/lib64/dri/gallium_dri.so (cso_draw_arrays+96)
#08 pc 00000000007a4258 /vendor/lib64/dri/gallium_dri.so (util_draw_user_vertex_buffer+96)
#09 pc 00000000007b0968 /vendor/lib64/dri/gallium_dri.so (util_run_tests+480)
#10 pc 000000000019e24c /vendor/lib64/dri/gallium_dri.so (pipe_msm_create_screen+68)
#11 pc 00000000006ada8c /vendor/lib64/dri/gallium_dri.so (pipe_loader_create_screen+60)
#12 pc 000000000020e958 /vendor/lib64/dri/gallium_dri.so (dri2_init_screen+120)
#13 pc 00000000006ad088 /vendor/lib64/dri/gallium_dri.so (driCreateNewScreen2+544)
Fixes: eeecc21d93 ("util: Add property_get() fallback for android")
Reviewed-by: Rob Clark <robclark@freedesktop.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7928 >
2020-12-04 19:14:45 +00:00
Jesse Natalie
f66236617c
clover/core: Fix x86 build
...
I unintentionally removed this size_t cast, which is required
for std::max to infer its single template arg.
Fixes: f88347cd ("clover/core: Support MSVC")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3920
Reviewed-by: Marcin Slusarz <marcin.slusarz@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7905 >
2020-12-04 16:33:37 +00:00
Rhys Perry
7610630124
aco: coalesce constant copies
...
fossil-db (Navi):
Totals from 20108 (14.49% of 138791) affected shaders:
CodeSize: 117835376 -> 117830512 (-0.00%)
Instrs: 22813722 -> 22733245 (-0.35%)
Cycles: 1009135584 -> 1008543628 (-0.06%)
VMEM: 5401668 -> 5391247 (-0.19%)
SMEM: 1286824 -> 1283663 (-0.25%)
Copies: 1742154 -> 1661686 (-4.62%)
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7798 >
2020-12-04 14:44:49 +00:00
Rhys Perry
f53d4e5f60
aco: use v_lshrrev_b64 for 64-bit VGPR copies on GFX10+
...
This isn't worth it on GFX9-, but the proprietary compiler uses it on
GFX10.
fossil-db (Navi):
Totals from 23825 (17.17% of 138791) affected shaders:
CodeSize: 130623632 -> 130623800 (+0.00%); split: -0.00%, +0.00%
Instrs: 25185559 -> 25108597 (-0.31%)
Cycles: 709864740 -> 708910860 (-0.13%)
VMEM: 7205343 -> 7168839 (-0.51%); split: +0.00%, -0.51%
SMEM: 1584946 -> 1575183 (-0.62%)
Copies: 2043134 -> 1966230 (-3.76%)
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7798 >
2020-12-04 14:44:48 +00:00
Rhys Perry
8c02a8e2d2
aco: add get_const/is_constant_representable helpers
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7798 >
2020-12-04 14:44:48 +00:00
Rhys Perry
b10de4c1d8
aco: allow 64-bit literals if they can be sign/zero-extended from 32-bit
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7798 >
2020-12-04 14:44:48 +00:00
Rhys Perry
24ee0f55f2
aco: remove sign-extension in constantValue64()
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7798 >
2020-12-04 14:44:48 +00:00
Rhys Perry
8451911156
aco: test self-intersecting copies when src=higher
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7798 >
2020-12-04 14:44:48 +00:00
Rhys Perry
2c40846ab6
aco: don't assume src=lower when splitting self-intersecting copies
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Fixes: 09c584caeb ("aco: split self-intersecting copies instead of swapping")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7798 >
2020-12-04 14:44:48 +00:00
Boris Brezillon
741921e2ff
panfrost: Update the resource layout before calling util_copy_rect()
...
If we don't do that, the line_stride might be wrong. We also need
to create a new BO if the previous one is too small to hold the
linear version, which can happen with the tile alignment done on
linear+renderable resources.
Suggested-by: Icecream95
Fixes: d4f662a252 ("panfrost: Update the resource layout when doing a tile -> linear conversion")
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7821 >
2020-12-04 13:20:41 +00:00
Marcin Ślusarz
90515f90c8
iris: store copy of the border color in the border color hash table
...
Color can be allocated on the stack since 809a81ec3a .
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3909
Fixes: 809a81ec3a ("iris: Properly support alpha and luminance-alpha formats")
Debugged-by: Filip Strömbäck
Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7885 >
2020-12-04 11:20:34 +00:00
Samuel Pitoiset
055aff2613
radv: reduce maxTransformFeedbackBufferDataSize to 512
...
DRAW_OPAQUE_VERTEX_STRIDE only has 9 bits, so the register can
represent 511 bytes at most.
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/7900 >
2020-12-04 07:52:23 +01:00
Vinson Lee
da16425690
util: Add os_get_page_size support for macOS.
...
Fix build error on macOS.
src/util/os_misc.c:352:2: error: unexpected platform in os_sysinfo.c
error unexpected platform in os_sysinfo.c
^
Fixes: ("cdf3a6a83b50 util: Add os_get_page_size query")
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7911 >
2020-12-03 19:47:58 -08:00
Ruijing Dong
ba42de95da
radeon/vcn: support hevc SAO enc for VCN2+
...
Add support of sample adaptive offset (SAO) in HEVC encode for VCN2 and above.
Signed-off-by: Ruijing Dong <ruijing.dong@amd.com>
Acked-by: Leo Liu <leo.liu@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6942 >
2020-12-03 19:49:30 -05:00
Boyuan Zhang
c56a1898d7
radeon/vcn: use cdw to calculate slice header index
...
Use DWORD count to calculate the number of DWORD filled in slice header template.
Signed-off-by: Boyuan Zhang <boyuan.zhang@amd.com>
Signed-off-by: Ruijing Dong <ruijing.dong@amd.com>
Acked-by: Leo Liu <leo.liu@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6942 >
2020-12-03 19:49:27 -05:00
Ruijing Dong
e37cd34ea6
radeon/vcn: add 0x02 to enc emulation prevention
...
Add 0x02 as a new case that triggers adding emulation prevention byte.
Signed-off-by: Ruijing Dong <ruijing.dong@amd.com>
Acked-by: Leo Liu <leo.liu@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6942 >
2020-12-03 19:49:22 -05:00
Vinson Lee
cf7bf7fade
amd/addrlib: Initialize Lib members in constructors.
...
Fix defects reported by Coverity Scan.
uninit_member: Non-static class member m_maxBaseAlign is not initialized in this constructor nor in any functions that it calls.
uninit_member: Non-static class member m_maxMetaBaseAlign is not initialized in this constructor nor in any functions that it calls.
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7768 >
2020-12-03 23:02:17 +00:00
Adam Jackson
df0157dc69
meson: Make the glvnd vendor name configurable
...
Leave the default as "mesa", but this enables parallel Mesa installs.
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7674 >
2020-12-03 22:36:27 +00:00
Bas Nieuwenhuizen
9a3aaffeb8
radv: Don't invalidate the SCACHE for image barriers.
...
Even ACO never uses the constant cache for images.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7875 >
2020-12-03 22:21:06 +00:00
Marek Olšák
6d75186008
st/mesa: move cso_context next to the other pointers
...
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7901 >
2020-12-03 21:41:19 +00:00
Marek Olšák
a07cb9a1ef
st/mesa: put pipe_screen * into st_context and use it
...
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7901 >
2020-12-03 21:41:19 +00:00
Marek Olšák
d23f45577e
cso: inline struct cso_cache to remove dereferences
...
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7901 >
2020-12-03 21:41:19 +00:00
Marek Olšák
8904fcca6d
gallium: inline struct u_suballocator to remove dereferences
...
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7901 >
2020-12-03 21:41:19 +00:00
Marek Olšák
0b22def5f8
cso: remove unused code
...
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7901 >
2020-12-03 21:41:19 +00:00
Marek Olšák
d0bc10affb
vbo: remove gl_context dereferences when we can just subtract the pointer
...
vbo_exec_context and vbo_save_context are inside gl_context.
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7901 >
2020-12-03 21:41:19 +00:00
Rob Clark
03e7c93b82
freedreno: Remove fd_log()
...
Now that it is superceeded by u_trace
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7818 >
2020-12-03 21:19:58 +00:00
Rob Clark
d5bc39c9d0
freedreno: Add trace-parser.py
...
Similar to log-parser.py, but uses u_trace tracepoint log.
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7818 >
2020-12-03 21:19:58 +00:00
Rob Clark
a02dcb970f
freedreno: Add GPU tracepoints
...
Add support for u_trace, and freedreno tracepoints.
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7818 >
2020-12-03 21:19:57 +00:00
Rob Clark
7a70f28de2
freedreno: Don't emit log/trace points in gmem for nondraw
...
For blit/compute non-draw batches, we are already emitting traces in the
draw cmdstream, which means we cannot also have traces in the GMEM ring
(as that breaks the FIFO ordering of traces)
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7818 >
2020-12-03 21:19:57 +00:00
Rob Clark
552dbd4470
freedreno: Remove unused fxn
...
Unused since aa2f6bd4f5
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7818 >
2020-12-03 21:19:57 +00:00
Rob Clark
c0f2897a7b
freedreno: Small log-parser.py cleanup
...
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7818 >
2020-12-03 21:19:57 +00:00
Rob Clark
3471af9c6c
gallium/aux: Add GPU tracepoint mechanism
...
This adds a mechanism, loosely inspired by the linux kernel's tracepoint
mechanism, to declare and emit tracepoints. A driver provided callback
is used to emit cmdstream to capture timestamps on the GPU, which are
used to later "render" the emitted tracepoints.
Signed-off-by: Rob Clark <robdclark@chromium.org>
Acked-by: Antonio Caggiano <antonio.caggiano@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7818 >
2020-12-03 21:19:57 +00:00