Anuj Phogat [Tue, 4 May 2021 00:39:28 +0000 (17:39 -0700)]
anv, iris: Add Wa_16011773973 for DG2
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14212>
Caio Oliveira [Wed, 15 Dec 2021 09:31:53 +0000 (01:31 -0800)]
Revert "nir: disable a NIR test due to undebuggable & locally unreproducible CI failures"
This reverts commit
6eb3fe2d4fa2c42d7ee1e20b390b3117a8980eaf. The root cause was
a bug in Meson when using the new gtest protocol and a test failed before producing
the XML file expected by it. This was fixed in later versions of Meson, so
we've bumped the required meson version to use that feature. The failure should
now be properly identified, so re-enabling the NIR test.
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
Acked-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14204>
Caio Oliveira [Wed, 15 Dec 2021 09:30:36 +0000 (01:30 -0800)]
meson: Bump version required for gtest protocol
The feature was added in 0.55 but there was a bug when tests
crashed (and no XML file was generated) that was only fixed in 0.59.2.
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
Acked-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14204>
Caio Oliveira [Wed, 15 Dec 2021 08:47:36 +0000 (00:47 -0800)]
nir: Initialize nir_register::divergent
Fixes:
c7fc44f9ebb ("nir/from_ssa: Respect and populate divergence information")
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14205>
Emma Anholt [Tue, 14 Dec 2021 23:51:13 +0000 (15:51 -0800)]
nir_to_tgsi: Set the TGSI Precise flag for exact ALU instructions.
This flag is used by the nv50, r600, and svga backends for instruction
exactness. It was easier to plumb it in as an override in tgsi_ureg than
to make all of ALU instruction emit do it.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14201>
Ian Romanick [Wed, 15 Dec 2021 01:19:01 +0000 (17:19 -0800)]
mesa: OpenGL 1.3 and OpenGL ES 1.0 are not optional
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14203>
Ian Romanick [Wed, 15 Dec 2021 01:18:37 +0000 (17:18 -0800)]
mesa: OpenGL 1.3 feature GL_ARB_texture_env_dot3 is not optional
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14203>
Ian Romanick [Wed, 15 Dec 2021 01:10:43 +0000 (17:10 -0800)]
mesa: OpenGL 1.3 feature GL_ARB_texture_env_combine is not optional
v2: GL_SRC_COLOR, GL_ONE_MINUS_SRC_COLOR, and GL_ONE_MINUS_SRC_ALPHA
should always be supported now. Noticed by Marek.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14203>
Ian Romanick [Wed, 15 Dec 2021 01:06:49 +0000 (17:06 -0800)]
mesa: OpenGL 1.3 feature GL_ARB_texture_cube_map is not optional
Cheatsheet:
_mesa_has_ARB_texture_cube_map() becomes (true &&
ctx->Extensions.Version >=
_mesa_extension_table[...].version[ctx->API]). The last value is 0 when
ctx->API is API_OPENGL_COMPAT and ~0 otherwise. The whole function
effectively becomes (ctx->API == API_OPENGL_COMPAT).
_mesa_has_OES_texture_cube_map() becomes (true &&
ctx->Extensions.Version >=
_mesa_extension_table[...].version[ctx->API]). The last value is 0 when
ctx->API is API_OPENGLES and ~0 otherwise. The whole function
effectively becomes (ctx->API == API_OPENGLES).
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14203>
Ian Romanick [Wed, 15 Dec 2021 00:43:32 +0000 (16:43 -0800)]
mesa: OpenGL 1.3 feature GL_ARB_texture_border_clamp is not optional
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14203>
Ian Romanick [Thu, 9 Dec 2021 23:25:20 +0000 (15:25 -0800)]
intel/fs: Use HF as destination type for F32TOF16 in fquantize2f16
Having an integer destination type instead of a float destination type
confuses the SWSB code. This causes problems on some Intel GPUs. Fix
this by using the correct type in the destination of the F32TOF16
opcode.
Gfx7 doesn't have the HF type, so continue to emit W on that platform.
The assertions in brw_F32TO16 (brw_eu_emit.c) are updated to reflect
this. In scalar mode, UD is never emitted as a destination type for
this opcode, so remove it from the allowed types in the assertion.
I also condidered doing something like
de55fd358fa ("intel/fs/xehp:
Teach SWSB pass about the exec pipeline of
FS_OPCODE_PACK_HALF_2x16_SPLIT."), but Curro recommended that just using
the correct types is a better fix. I agree.
v2: Add missing changes to fs_generator::generate_pack_half_2x16_split.
I'm not sure how I (and the Intel CI) missed that the first time. :(
v3: Fix copy-and-paste issue in the v2 fix. Noticed by Tapani.
Reviewed-by: Francisco Jerez <currojerez@riseup.net> [v1]
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14181>
Chia-I Wu [Fri, 10 Dec 2021 23:38:05 +0000 (15:38 -0800)]
venus: cache shmems
Shmems are allocated internally and are only for CPU access. They can
be easily cached.
Venus have 4 sources of shmem allocations
- the ring buffer
- the reply stream
- the indirection submission upload cs
- one cs for each vn_command_buffer
The first one is allocated only once. The other three reallocate
occasionally. The frequencies depend on the workloads.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Reviewed-by: Ryan Neph <ryanneph@google.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14179>
Chia-I Wu [Wed, 8 Dec 2021 23:55:12 +0000 (15:55 -0800)]
venus: add VN_CS_ENCODER_STORAGE_SHMEM_POOL for VkCommandBuffer
It suballocates from a shmem pool owned by vn_instance. The goals are
to speed up shmem allocations for VkCommandBuffer and to reduce the
number of BOs. Both are crucial when shmems are HOST3D BOs, because
they require roundtrips to the renderer to allocate and they take up KVM
memslots.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Reviewed-by: Ryan Neph <ryanneph@google.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14179>
Chia-I Wu [Wed, 8 Dec 2021 23:24:04 +0000 (15:24 -0800)]
venus: add vn_cs_encoder_storage_type
It generalizes cs->indirect.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Reviewed-by: Ryan Neph <ryanneph@google.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14179>
Chia-I Wu [Fri, 10 Dec 2021 01:08:15 +0000 (17:08 -0800)]
venus: use vn_renderer_shmem_pool for reply shmems
Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Reviewed-by: Ryan Neph <ryanneph@google.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14179>
Chia-I Wu [Wed, 8 Dec 2021 23:32:19 +0000 (15:32 -0800)]
venus: add vn_renderer_shmem_pool
It provides shmem suballocations. It is designed to be used with
short-lived shmems. A long-lived shmem can hold on to some large
allocation while only using a likely small region of the large
allocation.
v2: cleanups suggested by Yiwei
Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Reviewed-by: Ryan Neph <ryanneph@google.com> (v1)
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14179>
Chia-I Wu [Thu, 9 Dec 2021 22:12:01 +0000 (14:12 -0800)]
venus: add vn_renderer_util.[ch]
Move helpers built on top of vn_renderer.h to the new files.
Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Reviewed-by: Ryan Neph <ryanneph@google.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14179>
Dave Airlie [Thu, 9 Dec 2021 04:23:56 +0000 (14:23 +1000)]
mesa: inline mesa_initialize_buffer_object.
This has no other users now.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14133>
Dave Airlie [Thu, 9 Dec 2021 04:05:58 +0000 (14:05 +1000)]
mesa/st: remove st_cb_bufferobjects*
this has all been merged into mesa now
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14133>
Dave Airlie [Thu, 9 Dec 2021 03:57:08 +0000 (13:57 +1000)]
mesa/bufferobj: move invalidate buffer to optional feature
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14133>
Dave Airlie [Thu, 9 Dec 2021 03:55:32 +0000 (13:55 +1000)]
mesa/st: rename access flag to transfer flag function
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14133>
Dave Airlie [Thu, 9 Dec 2021 03:41:42 +0000 (13:41 +1000)]
bufferobj: cleanup subdata copies
This moves the common dst min/max invalidation and renames
to be a bit more consistent
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14133>
Dave Airlie [Thu, 9 Dec 2021 03:38:14 +0000 (13:38 +1000)]
bufferobj: inline page commitment
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14133>
Dave Airlie [Thu, 9 Dec 2021 03:36:59 +0000 (13:36 +1000)]
bufferobj: inline buffer clearing
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14133>
Dave Airlie [Thu, 9 Dec 2021 03:30:59 +0000 (13:30 +1000)]
bufferobj: make sw clear buffer static, move it and rename it
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14133>
Dave Airlie [Thu, 9 Dec 2021 03:24:54 +0000 (13:24 +1000)]
mesa/bufferobj: rename bufferobj functions to be more consistent.
After all the refactoring, start consolidating a bit and get the API
names more consistent
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14133>
Dave Airlie [Thu, 9 Dec 2021 03:04:33 +0000 (13:04 +1000)]
mesa/st: make static the buffer object funcs that can be
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14133>
Dave Airlie [Thu, 9 Dec 2021 03:00:08 +0000 (13:00 +1000)]
mesa/st: migrate most of state tracker buffer objects into mesa
This moves all of non-optional st functions into the main bufferobj.c
file.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14133>
Dave Airlie [Thu, 9 Dec 2021 19:13:14 +0000 (05:13 +1000)]
mesa: add pointer to cso_context to gl_context
Makes migrating code easier
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14133>
Dave Airlie [Thu, 9 Dec 2021 02:51:47 +0000 (12:51 +1000)]
mesa: add a pointer to st_config_options to gl_context
Allows porting out of st code easier
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14133>
Dave Airlie [Thu, 9 Dec 2021 02:46:51 +0000 (12:46 +1000)]
mesa: add a pipe_context pointer to gl context
This will be used to move more code over
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14133>
Dave Airlie [Thu, 9 Dec 2021 01:58:35 +0000 (11:58 +1000)]
mesa/st: start moving bufferobject alloc/free/reference to main.
This moves these out of the state tracker code
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14133>
Dave Airlie [Thu, 9 Dec 2021 01:37:58 +0000 (11:37 +1000)]
mesa/st: merge st buffer object into GL
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14133>
Alejandro Piñeiro [Mon, 13 Dec 2021 14:25:47 +0000 (15:25 +0100)]
broadcom/compiler: avoid unneeded sint/unorm clamping when lowering stores
They are being used on integer to integer stores. From Vulkan sec,
final paragraph of 16.4.4 "Texel Output Format Conversion":
"Each component is converted based on its type and size (as
defined in the Format Definition section for each
VkFormat). ... Integer outputs are converted such that their value
is preserved. The converted value of any integer that cannot be
represented in the target format is undefined."
I didn't find a equivalent quote for OpenGL as all conversion entries
are forcused on float to integer, fixed-point to integer, etc, and not
on integer to integer. Didn't find any test failure with this change.
We didn't get any shader-db stats change with shaderdb (even
overriding to OpenGL 4.4 to get more shaders built), so as a reference
Vulkan shader-db stats with the pattern
dEQP-VK.image.*.with_format.*.*
total instructions in shared programs: 37534 -> 36522 (-2.70%)
instructions in affected programs: 12080 -> 11068 (-8.38%)
helped: 241
HURT: 0
Instructions are helped.
total uniforms in shared programs: 9100 -> 8550 (-6.04%)
uniforms in affected programs: 3004 -> 2454 (-18.31%)
helped: 229
HURT: 0
total max-temps in shared programs: 6110 -> 6014 (-1.57%)
max-temps in affected programs: 402 -> 306 (-23.88%)
helped: 43
HURT: 0
Max-temps are helped.
total nops in shared programs: 1523 -> 1526 (0.20%)
nops in affected programs: 21 -> 24 (14.29%)
helped: 3
HURT: 6
Inconclusive result (value mean confidence interval includes 0).
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14194>
Samuel Pitoiset [Tue, 14 Dec 2021 08:54:07 +0000 (09:54 +0100)]
radv/winsys: update sparse mappings with OP_REPLACE instead of OP_MAP/OP_UNMAP
When the BO is NULL, AMDGPU will reset the PTE VA range to the initial
state. Otherwise, it will first unmap all existing VA that overlap the
requested range and then map. This seems better than using MAP/UNMAP.
This reduces stuttering in Forza Horizon 5.
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/14116>
Samuel Pitoiset [Mon, 6 Dec 2021 17:43:27 +0000 (18:43 +0100)]
radv/winsys: stop using reference counting for virtual BOs
This shouldn't be necessary because applications have to manage
resources and memory themselves.
This also prevented memory to be freed if an application doesn't unbind
a sparse memory object and free it, which is legal as long as the
resource isn't used afterwards.
This was introduced to unmap the sparse mappings when destroying
a virtual BO, but now that the driver uses OP_CLEAR it's no longer
needed.
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/14116>
Samuel Pitoiset [Mon, 6 Dec 2021 17:35:19 +0000 (18:35 +0100)]
radv/winsys: clear the PRT VA range when destroying a virtual BO
Instead of unmapping every range.
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/14116>
Samuel Pitoiset [Mon, 6 Dec 2021 17:32:46 +0000 (18:32 +0100)]
radv/winsys: remove useless has_sparse_vm_mappings checks
Sparse is only exposed on GFX8+, so this is always TRUE.
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/14116>
Jason Ekstrand [Tue, 14 Dec 2021 17:55:06 +0000 (11:55 -0600)]
Revert "anv: Stop doing too much per-sample shading"
This reverts commit
1f559930b6b7a633d93cd4e9cc4965b3f5e7c607. Turns
out, this approach won't work.
Fixes:
1f559930b6b7 ("anv: Stop doing too much per-sample shading")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14196>
Marek Olšák [Tue, 7 Dec 2021 22:50:35 +0000 (17:50 -0500)]
mesa: use nop dispatch for ColorTable/Convolution/Histogram
The nop dispatch generates GL_INVALID_OPERATION too.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14000>
Marek Olšák [Tue, 7 Dec 2021 21:48:11 +0000 (16:48 -0500)]
mesa: remove all GL func forward declarations because they are autogenerated
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14000>
Marek Olšák [Tue, 14 Dec 2021 17:11:09 +0000 (12:11 -0500)]
mesa,vbo: make ES wrapper functions static
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14000>
Marek Olšák [Tue, 14 Dec 2021 17:02:32 +0000 (12:02 -0500)]
glapi: add missing no_error settings for implemented functions
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14000>
Marek Olšák [Thu, 2 Dec 2021 00:55:30 +0000 (19:55 -0500)]
mesa: remove COPY_DISPATCH code that doesn't do anything
When we get into create_beginend_table, ctx->Exec only contains nops
set by _mesa_alloc_dispatch_table. This function calls
_mesa_alloc_dispatch_table too, so table and ctx->Exec are identical,
and then it copies identical entries from one table to the other.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14000>
Marek Olšák [Wed, 1 Dec 2021 21:59:23 +0000 (16:59 -0500)]
mesa: rename _ae_ArrayElement -> _mesa_ArrayElement to match glapi
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14000>
Marek Olšák [Mon, 29 Nov 2021 19:04:42 +0000 (14:04 -0500)]
mesa: use ctx->GLThread.enabled now that it's correct
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14000>
Marek Olšák [Tue, 30 Nov 2021 13:28:35 +0000 (08:28 -0500)]
glthread: disable glthread if the context is lost
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14000>
Marek Olšák [Mon, 29 Nov 2021 18:51:23 +0000 (13:51 -0500)]
glthread: fix restoring the dispatch in destroy when the context is not current
also remove an invalid comment in mtypes.h
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14000>
Marek Olšák [Mon, 29 Nov 2021 18:58:59 +0000 (13:58 -0500)]
glthread: inline _mesa_glthread_restore_dispatch and merge disable & destroy
No change in behavior.
This fixes ctx->GLThread.enabled, which was only set to false by destroy.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14000>
Marek Olšák [Mon, 29 Nov 2021 00:39:45 +0000 (19:39 -0500)]
glthread: set marshal functions in dispatch only if they exist in the API
We now have proper nop dispatch for the unset functions.
The autogenerated code looks like this:
if ((ctx->API == API_OPENGLES2 && ctx->Version >= 31)) {
if (_gloffset_DepthRangeArrayfvOES >= 0)
((_glapi_proc *)(ctx->MarshalExec))[_gloffset_DepthRangeArrayfvOES] = (_glapi_proc)_mesa_marshal_DepthRangeArrayfvOES;
if (_gloffset_DepthRangeIndexedfOES >= 0)
((_glapi_proc *)(ctx->MarshalExec))[_gloffset_DepthRangeIndexedfOES] = (_glapi_proc)_mesa_marshal_DepthRangeIndexedfOES;
}
if (_mesa_is_desktop_gl(ctx)) {
if (_gloffset_AlphaToCoverageDitherControlNV >= 0)
((_glapi_proc *)(ctx->MarshalExec))[_gloffset_AlphaToCoverageDitherControlNV] = (_glapi_proc)_mesa_marshal_AlphaToCoverageDitherControlNV;
if (_gloffset_AttachObjectARB >= 0)
((_glapi_proc *)(ctx->MarshalExec))[_gloffset_AttachObjectARB] = (_glapi_proc)_mesa_marshal_AttachObjectARB;
if (_gloffset_BeginQueryIndexed >= 0)
((_glapi_proc *)(ctx->MarshalExec))[_gloffset_BeginQueryIndexed] = (_glapi_proc)_mesa_marshal_BeginQueryIndexed;
if (_gloffset_BindBufferOffsetEXT >= 0)
((_glapi_proc *)(ctx->MarshalExec))[_gloffset_BindBufferOffsetEXT] = (_glapi_proc)_mesa_marshal_BindBufferOffsetEXT;
...
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14000>
Marek Olšák [Mon, 29 Nov 2021 11:11:35 +0000 (06:11 -0500)]
glthread: add nop dispatch
so that glthread behaves the same as the main dispatch.
Also fix the SetError function for GLES 1.0.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14000>
Marek Olšák [Mon, 29 Nov 2021 23:52:48 +0000 (18:52 -0500)]
vbo: expose all exec entrypoints for glthread and match api_exec_decl.h names
Autogenerated glthread code will call these directly.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14000>
Marek Olšák [Mon, 29 Nov 2021 14:02:07 +0000 (09:02 -0500)]
mesa: remove GLvertexformat
Function pointers were first set in GLvertexformat, and then
GLvertexformat was copied to the dispatch.
This just sets the function pointers in the dispatch directly,
skipping the intermediate GLvertexformat structure.
The code with SET_* calls is autogenerated by api_vtxfmt_init_h.py.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14000>
Marek Olšák [Mon, 29 Nov 2021 01:31:06 +0000 (20:31 -0500)]
glapi: autogenerate install_vtxfmt with python
This is a prerequisite for the GLvertexformat removal.
The autogenerated file looks like this:
if (_mesa_is_desktop_gl(ctx) || (ctx->API == API_OPENGLES2 && ctx->Version >= 30)) {
SET_VertexAttribI4iEXT(tab, NAME(VertexAttribI4iEXT));
SET_VertexAttribI4ivEXT(tab, NAME(VertexAttribI4ivEXT));
SET_VertexAttribI4uiEXT(tab, NAME(VertexAttribI4uiEXT));
SET_VertexAttribI4uivEXT(tab, NAME(VertexAttribI4uivEXT));
}
if (ctx->API == API_OPENGLES2) {
SET_VertexAttrib1fARB(tab, NAME_ES(VertexAttrib1fARB));
SET_VertexAttrib1fvARB(tab, NAME_ES(VertexAttrib1fvARB));
SET_VertexAttrib2fARB(tab, NAME_ES(VertexAttrib2fARB));
SET_VertexAttrib2fvARB(tab, NAME_ES(VertexAttrib2fvARB));
SET_VertexAttrib3fARB(tab, NAME_ES(VertexAttrib3fARB));
SET_VertexAttrib3fvARB(tab, NAME_ES(VertexAttrib3fvARB));
SET_VertexAttrib4fARB(tab, NAME_ES(VertexAttrib4fARB));
SET_VertexAttrib4fvARB(tab, NAME_ES(VertexAttrib4fvARB));
}
if (ctx->API == API_OPENGL_COMPAT) {
SET_ArrayElement(tab, NAME_AE(ArrayElement));
SET_Begin(tab, NAME(Begin));
SET_CallList(tab, NAME_CALLLIST(CallList));
SET_CallLists(tab, NAME_CALLLIST(CallLists));
SET_Color3b(tab, NAME(Color3b));
SET_Color3bv(tab, NAME(Color3bv));
...
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14000>
Marek Olšák [Mon, 29 Nov 2021 21:27:35 +0000 (16:27 -0500)]
glapi: autogenerate all _mesa_* forward declarations in api_exec_decl.h
We could remove them from other header files now.
This purposefully omits "_exec" in _mesa_exec such as _mesa_exec_Begin
to make it pretty. Later commits will remove _exec from names, e.g. it
will become _mesa_Begin. The only other variants are really just
save_Begin (dlist) and _save_Begin (vbo).
The autogenerated file looks like this:
void GLAPIENTRY _mesa_NewList(GLuint list, GLenum mode);
void GLAPIENTRY _mesa_EndList(void);
void GLAPIENTRY _mesa_CallList(GLuint list);
void GLAPIENTRY _mesa_CallLists(GLsizei n, GLenum type, const GLvoid * lists);
void GLAPIENTRY _mesa_DeleteLists(GLuint list, GLsizei range);
GLuint GLAPIENTRY _mesa_GenLists(GLsizei range);
void GLAPIENTRY _mesa_ListBase(GLuint base);
void GLAPIENTRY _mesa_Begin(GLenum mode);
void GLAPIENTRY _mesa_Bitmap(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte * bitmap);
void GLAPIENTRY _mesa_Color3b(GLbyte red, GLbyte green, GLbyte blue);
void GLAPIENTRY _mesa_Color3bv(const GLbyte * v);
...
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14000>
Marek Olšák [Mon, 29 Nov 2021 21:16:51 +0000 (16:16 -0500)]
mesa: remove api_exec.h and move its contents into context.h
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14000>
Marek Olšák [Mon, 29 Nov 2021 12:55:42 +0000 (07:55 -0500)]
glapi: autogenerate api_save.h with save_* function declarations
This is planned to be used by glthread for its own dispatch mechanism.
The autogenerated file looks like this:
void GLAPIENTRY save_NewList(GLuint list, GLenum mode);
void GLAPIENTRY save_ListBase(GLuint base);
void GLAPIENTRY save_Bitmap(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte * bitmap);
void GLAPIENTRY save_RasterPos2d(GLdouble x, GLdouble y);
void GLAPIENTRY save_RasterPos2dv(const GLdouble * v);
void GLAPIENTRY save_RasterPos2f(GLfloat x, GLfloat y);
void GLAPIENTRY save_RasterPos2fv(const GLfloat * v);
void GLAPIENTRY save_RasterPos2i(GLint x, GLint y);
void GLAPIENTRY save_RasterPos2iv(const GLint * v);
...
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14000>
Marek Olšák [Mon, 29 Nov 2021 00:14:52 +0000 (19:14 -0500)]
glapi: autogenerate _mesa_initialize_save_table with python
The generated file looks like this:
SET_NewList(table, save_NewList);
SET_ListBase(table, save_ListBase);
SET_Bitmap(table, save_Bitmap);
SET_RasterPos2d(table, save_RasterPos2d);
SET_RasterPos2dv(table, save_RasterPos2dv);
SET_RasterPos2f(table, save_RasterPos2f);
SET_RasterPos2fv(table, save_RasterPos2fv);
SET_RasterPos2i(table, save_RasterPos2i);
SET_RasterPos2iv(table, save_RasterPos2iv);
SET_RasterPos2s(table, save_RasterPos2s);
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14000>
Marek Olšák [Tue, 7 Dec 2021 21:41:28 +0000 (16:41 -0500)]
glapi: move reusable glapi printing code to apiexec.py
This will be used by all new scripts.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14000>
Marek Olšák [Mon, 29 Nov 2021 17:15:07 +0000 (12:15 -0500)]
vbo: rename ES vertex functions to match GL dispatch names
vbo_init_tmp.h will be autogenerated.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14000>
Marek Olšák [Mon, 29 Nov 2021 17:15:07 +0000 (12:15 -0500)]
vbo: rename vertex functions to match GL dispatch names
vbo_init_tmp.h will be autogenerated.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14000>
Marek Olšák [Mon, 29 Nov 2021 02:03:14 +0000 (21:03 -0500)]
mesa: add EXT suffix to VertexAttribI*EXT to match glapi name
I don't wanna do it the other way and potentially break the libGL - *_dri ABI.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14000>
Marek Olšák [Mon, 29 Nov 2021 12:14:31 +0000 (07:14 -0500)]
glapi: replace dispatch.h inline functions with macros for faster compilation
A change in dispatch.h now takes 11.7% less user+sys time to compile.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14000>
Marek Olšák [Mon, 29 Nov 2021 00:28:57 +0000 (19:28 -0500)]
glapi: move apiexec API condition determination to common code
it will be used elsewhere
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14000>
Marek Olšák [Mon, 29 Nov 2021 10:41:44 +0000 (05:41 -0500)]
glapi: rename gl_genexec.py to api_exec_init.py, api_exec.c to api_exec_init.c
this seems cleaner
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14000>
Marek Olšák [Sun, 28 Nov 2021 23:17:23 +0000 (18:17 -0500)]
mesa: rename dlist functions to match dispatch function names
_mesa_initialize_save_table will be autogenerated.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14000>
Marek Olšák [Sun, 28 Nov 2021 22:24:59 +0000 (17:24 -0500)]
mesa: don't set CallList* redundantly in _mesa_initialize_save_table
It's set by _mesa_install_save_vtxfmt.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14000>
Marek Olšák [Sun, 28 Nov 2021 22:34:26 +0000 (17:34 -0500)]
glapi: rename exec="dynamic" to exec "vtxfmt" to make it self-explanatory
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14000>
Marek Olšák [Sun, 28 Nov 2021 22:05:59 +0000 (17:05 -0500)]
mesa: move the ES2 check from vbo_init_tmp.h to install_vtxfmt
It's where other API checks are done.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14000>
Marek Olšák [Mon, 29 Nov 2021 14:40:17 +0000 (09:40 -0500)]
mesa: inline _vbo_install_exec_vtxfmt
also remove unused vbo_initialize_exec_dispatch
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14000>
Marek Olšák [Mon, 29 Nov 2021 14:34:38 +0000 (09:34 -0500)]
mesa: move _mesa_initialize_vbo_vtxfmt calls to a common place and inline
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14000>
Marek Olšák [Sun, 28 Nov 2021 22:21:08 +0000 (17:21 -0500)]
mesa: inline _mesa_install_dlist_vtxfmt
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14000>
Marek Olšák [Sun, 28 Nov 2021 21:56:44 +0000 (16:56 -0500)]
mesa: inline _mesa_install_eval_vtxfmt
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14000>
Marek Olšák [Sun, 28 Nov 2021 21:54:35 +0000 (16:54 -0500)]
mesa: inline _mesa_install_arrayelt_vtxfmt
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14000>
Marek Olšák [Sun, 28 Nov 2021 21:45:55 +0000 (16:45 -0500)]
mesa: inline vbo_initialize_save_dispatch and rename the functions
_mesa_initialize_save_table will be autogenerated.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14000>
Marek Olšák [Mon, 29 Nov 2021 12:52:10 +0000 (07:52 -0500)]
mesa: include less stuff in dlist.c
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14000>
Gert Wollny [Wed, 25 Aug 2021 14:02:31 +0000 (16:02 +0200)]
virgl: Enable higher compatibility profiles if host supports it
v2: Update CI expectations
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Italo Nicola <italonicola@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12542>
Gert Wollny [Mon, 6 Dec 2021 10:13:55 +0000 (11:13 +0100)]
ci: pin virglrenderer version
Currently we always just pull in whatever version of
virglrenderer happens to be TOT in googlesource.
Instead, pin a specific version, and this should also
trigger an update of the container when this versions
is changed.
v2: Fix spelling error (tomeu)
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12542>
Rhys Perry [Wed, 8 Dec 2021 16:52:33 +0000 (16:52 +0000)]
radv: have the null winsys set more fields
I copied stuff from ac_gpu_info.c until there were no Sienna Cichild or
Polaris10 fossil-db changes between real hardware and RADV_FORCE_FAMILY.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14126>
Bas Nieuwenhuizen [Mon, 6 Dec 2021 02:39:01 +0000 (03:39 +0100)]
radv: Expose the ETC2 emulation.
As needed on Android (as it is required) and by driconf flag otherwise.
The non-Android case would be on the host side for an Android VM.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14071>
Bas Nieuwenhuizen [Mon, 6 Dec 2021 01:22:32 +0000 (02:22 +0100)]
radv: Deal with border colors with emulated ETC2.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14071>
Bas Nieuwenhuizen [Wed, 3 Nov 2021 23:49:45 +0000 (00:49 +0100)]
radv: Add ETC2 decode shader.
To make sure that apps actually get something when the HW doesn't
support ETC2. To do that we decompress after every copy operation.
Includes a quite complicated decode shader. It is not bit-to-bit
equivalent to AMD APUs that support ETC2, but close enough to
pass CTS. Likely missing bits are related to the R11 and R11G11
formats where we decode to 16 bits but likely do the extension
differently.
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14071>
Bas Nieuwenhuizen [Wed, 3 Nov 2021 23:00:59 +0000 (00:00 +0100)]
radv: Add extra plane for decoding ETC images with emulation.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14071>
Bas Nieuwenhuizen [Tue, 30 Nov 2021 00:47:15 +0000 (01:47 +0100)]
radv: Use the correct base format for reintepretation.
Going to hit it when emulating ETC2 through another plane.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14071>
Bas Nieuwenhuizen [Wed, 3 Nov 2021 11:55:28 +0000 (12:55 +0100)]
radv: Set up ETC2 emulation wiring.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14071>
Roman Stratiienko [Fri, 10 Dec 2021 17:35:55 +0000 (19:35 +0200)]
v3d: Don't force SCANOUT for PIPE_BIND_SHARED requests
This was workaround for the users of gbm_bo_create_with_modifiers(),
which were unable to specify the buffer usage (GPU / GPU+DISPLAY).
But after the commit [1] this become possible. And forcing usage to
GBM_BO_USE_SCANOUT migrated directly into gbm_bo_create_with_modifiers
[2], allowing us to remove such workarounds from the drivers.
This makes possible to allocate the buffers in VRAM using
{gbm_bo_create_with_modifiers2 | gbm_bo_create} and providing correct
use flag thus saving CMA memory.
This should also enable tiling for such buffers.
[1]:
268e12c60534 ("gbm: add gbm_{bo,surface}_create_with_modifiers2")
[2]:
ad50b47a14e9 ("gbm: assume USE_SCANOUT in create_with_modifiers")
Signed-off-by: Roman Stratiienko <roman.o.stratiienko@globallogic.com>
Reviewed-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14151>
Roman Stratiienko [Tue, 14 Dec 2021 09:53:33 +0000 (11:53 +0200)]
v3dv: Hotfix: Rename remaining V3DV_HAS_SURFACE->V3DV_USE_WSI_PLATFORM
This was somehow missed by me and during review.
Fixes
fcfc4ddfccd5: ("v3dv: Fix V3DV_HAS_SURFACE preprocessor condition")
Signed-off-by: Roman Stratiienko <roman.o.stratiienko@globallogic.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14190>
Iago Toral Quiroga [Mon, 13 Dec 2021 07:56:43 +0000 (08:56 +0100)]
broadcom/compiler: improve thrsw merge
Instead of stopping the merge process when we find an instruction
with an incompatible signal (such as an small immediate), keep
going and see if we can merge the thrsw in a previous instruction
that is compatible.
total instructions in shared programs:
13409835 ->
13356648 (-0.40%)
instructions in affected programs: 3556860 -> 3503673 (-1.50%)
helped: 17457
HURT: 18
Instructions are helped.
total max-temps in shared programs: 2353971 -> 2352956 (-0.04%)
max-temps in affected programs: 13960 -> 12945 (-7.27%)
helped: 703
HURT: 0
Max-temps are helped.
total spills in shared programs: 12301 -> 12301 (0.00%)
total sfu-stalls in shared programs: 32596 -> 32499 (-0.30%)
sfu-stalls in affected programs: 225 -> 128 (-43.11%)
helped: 79
HURT: 3
Sfu-stalls are helped.
total nops in shared programs: 347204 -> 325234 (-6.33%)
nops in affected programs: 99834 -> 77864 (-22.01%)
helped: 11515
HURT: 158
Nops are helped.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14172>
Kostiantyn Lazukin [Wed, 10 Nov 2021 16:01:09 +0000 (18:01 +0200)]
util/ra: use adjacency matrix for undirected graph
Since this graph is actually not oriented, its adjacency matrix can be
represented using less than half bits required by full adjacency matrix.
It reduces memory consumption and number of cache misses. It also simplifies
logic of growing this matrix - no need to touch adjacency bits for previously
allocated number of nodes.
Move adjacency bits from nodes to graph to reduce the number of allocations.
No changes to shader-db.
Reviewed-by: Emma Anholt <emma@anholt.net>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Signed-off-by: Kostiantyn Lazukin <kostiantyn.lazukin@globallogic.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14189>
Tomeu Vizoso [Mon, 6 Dec 2021 15:28:02 +0000 (16:28 +0100)]
lvp: Free the driver_data pointer for all commands
We were only freeing it for commands that had a struct as their
parameter, but all commands can have driver_data.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5715
Reported-by: Jose Fonseca <jfonsec@vmware.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14081>
Juan A. Suarez Romero [Mon, 13 Dec 2021 09:21:34 +0000 (10:21 +0100)]
nir: use call_once() to init debug variable
For data-race safety, let's use this function to ensure NIR debug is
initialized only once.
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14057>
Juan A. Suarez Romero [Sat, 4 Dec 2021 06:39:51 +0000 (07:39 +0100)]
tgsi-to-nir: initialize NIR_DEBUG envvar
This envvar is initialized when creating a NIR shader, but it needs to
be used before. So initialize it here.
v2 (Juan):
- Use static variable for first initialization.
Fixes:
f77ccdfb4a2 ("nir: add NIR_DEBUG envvar")
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14057>
Nanley Chery [Tue, 28 Sep 2021 00:09:02 +0000 (17:09 -0700)]
iris: Disable the SMEM fallback for CCS on XeHP
On XeHP, CCS is only supported in local memory.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14012>
Nanley Chery [Wed, 1 Dec 2021 20:45:25 +0000 (15:45 -0500)]
iris: Rework the DEVICE_LOCAL heap
Split it into a local-only heap (which keeps the original enum) and a
local-preferred heap (which has a new enum).
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14012>
Nanley Chery [Wed, 1 Dec 2021 18:48:57 +0000 (13:48 -0500)]
iris: Add and use bucket_info_for_heap
Add a helper that maps a heap to the related cache bucket information.
This avoids complicating existing ternaries when new cache buckets are
added.
Rework:
* Jordan: Add default and set pointers in default branch of
bucket_info_for_heap to prevent "may be used uninitialized" warning
in release builds.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14012>
Nanley Chery [Thu, 2 Dec 2021 15:18:23 +0000 (10:18 -0500)]
iris: Add and use BUCKET_ARRAY_SIZE
This improves an assert in add_bucket.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14012>
Nanley Chery [Wed, 1 Dec 2021 18:08:55 +0000 (13:08 -0500)]
iris: Replace "local" with "heap" in bufmgr fn params
We'll want to describe more than two placement options for BOs. Switch
to using the more flexible heap enum.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14012>
Nanley Chery [Wed, 1 Dec 2021 18:45:05 +0000 (13:45 -0500)]
iris: Use a num_buckets pointer in add_bucket
Store a pointer to the appropriate cache bucket counter, then increment
the integer it points to. This keeps us from having to add code for
incrementing when a new cache bucket is added.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14012>
Nanley Chery [Tue, 28 Sep 2021 00:09:02 +0000 (17:09 -0700)]
iris: Add and use flags_to_heap
Reduces duplicated calculations.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14012>
Nanley Chery [Wed, 1 Dec 2021 16:28:31 +0000 (11:28 -0500)]
iris: Replace bo->real.local with bo->real.heap
We'll want to describe more than two placement options for BOs. Switch
to using the more flexible heap enum.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14012>