Jesse Natalie
1a01187e1b
dzn: Define COBJMACROS before any includes
...
Otherwise the IUnknown definition might get included before it.
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17340 >
2022-07-06 12:18:55 +00:00
Jesse Natalie
f47e42fdba
dzn: Annotate sometimes-unused variables.
...
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17340 >
2022-07-06 12:18:55 +00:00
Jason Ekstrand
bfbcd966f3
nir: Use util_mask_sign_extend when serializing constants
...
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17214 >
2022-07-06 11:23:18 +00:00
Jason Ekstrand
642283a2c1
panfrost,asahi: Use util_sign_extend for unpacking
...
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Kristian H. Kristensen <hoegsberg@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17214 >
2022-07-06 11:23:18 +00:00
Jason Ekstrand
6787c96039
intel/decoder: Use util_mask_sign_extend()
...
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Kristian H. Kristensen <hoegsberg@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17214 >
2022-07-06 11:23:18 +00:00
Jason Ekstrand
bc5e77a9f2
isl: Use util_sign_extend
...
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Kristian H. Kristensen <hoegsberg@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17214 >
2022-07-06 11:23:18 +00:00
Jason Ekstrand
efc63ea02d
util,nir: Move mask_sign_extend from opt_load_store_vectorize to util
...
While we're moving it, reformat a bit to make it match util_sign_extend
better.
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Kristian H. Kristensen <hoegsberg@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17214 >
2022-07-06 11:23:18 +00:00
Jason Ekstrand
a307bc8556
mesa/bptc: Use util_sign_extend
...
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Kristian H. Kristensen <hoegsberg@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17214 >
2022-07-06 11:23:18 +00:00
Jason Ekstrand
1df29825e7
util: Use util_sign_extend in fast_idiv_by_const
...
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Kristian H. Kristensen <hoegsberg@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17214 >
2022-07-06 11:23:18 +00:00
Jason Ekstrand
53eeb1e238
util: Use shifts in util_sign_extend
...
As long as we left-shift the unsigned version, this has no undefined
behavior and is fewer instructions. The only tricky bit is that a right
shift of a negative number is technically implementation-defined (not
undefined) behavior in C. However, if it's ever anything other than an
arithmatic right-shift, there's lots of other places where Mesa will
break today.
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Kristian H. Kristensen <hoegsberg@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17214 >
2022-07-06 11:23:18 +00:00
Jason Ekstrand
6fee4584ea
util: Re-indent util_sign_extend, comment, and add asserts
...
The current implementation depends on both of these things for
correctness. If width > 64, you get UB wrap-around and, if
val >= (1 << width), the subtract trick won't work.
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Reviewed-by: Kristian H. Kristensen <hoegsberg@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17214 >
2022-07-06 11:23:18 +00:00
Jason Ekstrand
20016aa8f6
anv: Replace an assert() with unreachable()
...
Also move it to the end of the switch as is more conventional. For some
reason, later patches in the series make ANV fail to build because GCC
stops detecting the assert(!"str") as not returning.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17214 >
2022-07-06 11:23:18 +00:00
Georg Lehmann
2d6b0a4177
aco/optimizer: Optimize SOPC with literal to SOPK.
...
Signed-off-by: Georg Lehmann <dadschoorse@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15999 >
2022-07-06 09:54:54 +00:00
Georg Lehmann
52f8167b25
aco/optimizer: Convert s_add_u32 with literals to s_add_i32 if carry is not used.
...
To allow further optimizations to s_addk_i32.
Signed-off-by: Georg Lehmann <dadschoorse@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15999 >
2022-07-06 09:54:54 +00:00
Georg Lehmann
e06773281b
aco/ra: Optimize some SOP2 instructions with literal to SOPK.
...
Signed-off-by: Georg Lehmann <dadschoorse@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15999 >
2022-07-06 09:54:54 +00:00
Georg Lehmann
efdb323ad2
aco/ir: Pad SOP2 and SOPC to the same size as SOPK.
...
Being able to directly cast instructions simplifies optimizations.
Signed-off-by: Georg Lehmann <dadschoorse@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15999 >
2022-07-06 09:54:54 +00:00
Georg Lehmann
87b4f3daa1
aco/ra: Move mac encoding optimization to its own function.
...
Signed-off-by: Georg Lehmann <dadschoorse@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15999 >
2022-07-06 09:54:54 +00:00
Georg Lehmann
c9490436b6
aco/ra: Static assert that changing instruction type to VOP2 is valid.
...
It's not obvious that this is correct.
Signed-off-by: Georg Lehmann <dadschoorse@gmail.com >
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15999 >
2022-07-06 09:54:54 +00:00
Samuel Pitoiset
599b587220
radv/ci: update list of failures against CTS 1.3.3.0
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17370 >
2022-07-06 10:26:20 +02:00
Samuel Pitoiset
0effcda0fc
zink/ci: update list of failures
...
These regressions aren't related to LLVM at all and they are fixed
with recent 16-bit related fixes for ACO.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17370 >
2022-07-06 10:26:20 +02:00
Lucas Stach
6ab2e1055b
etnaviv: drop scanout assumption for resources allocated via modifier interface
...
Now that usage flags can be specified even when using the modifier path for
allocation and frontends like GBM and EGL wayland do this properly, we can
drop the assumption that all resources allocated through the modifier
enabled path need to be SCANOUT capable.
Signed-off-by: Lucas Stach <l.stach@pengutronix.de >
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17364 >
2022-07-06 07:43:26 +00:00
Boris Brezillon
99352b87dc
dzn: Take VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT into account
...
Use a typeless format when VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT is
set, so we can cast to compatible types at least. Still doesn't
work when formats are of the same size but from incompatible
types (like R32_FLOAT and RGBA8_UNORM), which Vulkan considers
as compatible while D3D12 doesn't, but it gets us closer to what
the Vulkan API wants.
D3D12_FEATURE_DATA_D3D12_OPTIONS12::RelaxedFormatCastingSupported
should address the remaining limitations.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17368 >
2022-07-06 06:15:46 +00:00
Boris Brezillon
d132ec924d
dzn: Support native image copies when formats are compatible
...
CopyTextureRegion() works fine if the formats belong to the
same group (matching the same _TYPELESS type), so let's avoid
creating a temporary resource in that case.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17368 >
2022-07-06 06:15:46 +00:00
Boris Brezillon
53a352e1cf
dzn: Provide a helper to check if 2 formats are compatible
...
D3D12 supports fomat casting through optional features. Let's
add a helper to query whether 2 formats are compatible or not.
The compatibility depends on the formats+usage pair
(CopyTextureRegion() is less strict than the texture sampling
logic).
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17368 >
2022-07-06 06:15:46 +00:00
Boris Brezillon
af294d9ba0
dzn: Query D3D12_FEATURE_D3D12_OPTIONS3 features
...
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17368 >
2022-07-06 06:15:46 +00:00
Iago Toral Quiroga
7dc951374c
v3dv: fix merge jobs
...
This only works if the framebuffer config is exactly the same so
testing both subpasses have the same attachments is not enough,
they also need to be exactly in the same order.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17358 >
2022-07-06 05:49:37 +00:00
Lionel Landwerlin
b91971c240
anv: use the right helper to invalidate memory
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17001 >
2022-07-06 02:04:48 +03:00
Mike Blumenkrantz
6759320c65
zink: use a std430 interface for bo types
...
no functional changes but is technically more correct
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17239 >
2022-07-05 17:03:53 -04:00
Mike Blumenkrantz
900e78548c
zink: use std430 packing by default
...
this reduces bo size a bit
Reviewed-by: Dave Airlie <airlied@redhat.com >
fixes:
spec@!opengl es 3.0@gles-3.0-transform-feedback-uniform-buffer-object
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17239 >
2022-07-05 17:03:51 -04:00
Mike Blumenkrantz
ab9e423c4f
zink: add an optimizer pass to enforce bo bounds
...
this eliminates (some) out-of-bounds bo access and will ensure that
bo sizing is always accurate by breaking all the cases where it isn't
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17239 >
2022-07-05 16:01:01 -04:00
Mike Blumenkrantz
48c19bb508
zink: pass zink_shader to optimize_nir during final optimize pass
...
no functional changes
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17239 >
2022-07-05 16:01:01 -04:00
Mike Blumenkrantz
9dd41991d0
zink: don't run nir_lower_uniforms_to_ubo repeatedly
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17239 >
2022-07-05 16:01:01 -04:00
Mike Blumenkrantz
ac2141a5b2
zink: handle bitsizes in get_bo_vars() analysis
...
this allows it to be run repeatedly
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17239 >
2022-07-05 16:01:01 -04:00
Mike Blumenkrantz
58780b3aa6
zink: move/refactor bo_vars struct creation in compiler
...
no functional changes
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17239 >
2022-07-05 16:01:01 -04:00
Mike Blumenkrantz
7b6020d487
zink: force unsized array in bo creation using the last block member type
...
if the last member of a block is an unsized array then the bo needs to have
an unsized array
cc: mesa-stable
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17239 >
2022-07-05 16:01:01 -04:00
Mike Blumenkrantz
ea8a0654f5
zink: further improve bo sizing
...
using the attribute slot size isn't sufficient in this case, as the layout
rules may have additional effects upon sizing
instead, just use the explicit size
cc: mesa-stable
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17239 >
2022-07-05 16:01:01 -04:00
Mike Blumenkrantz
e241bbe1ce
zink: size uniform_0 ubo accurately
...
this one is always identifiable from lower_uniforms_to_ubo, so the
info should always be reliable
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17239 >
2022-07-05 16:01:01 -04:00
Alyssa Rosenzweig
151aa19c21
ttn: Set nir->info.separate_shader
...
TGSI has no legitimate[1] notion of linked shaders, which means tgsi_to_nir
should conservatively assume everything all shaders are separable. This requires
setting nir->info.separate_shader to warn drivers that shader CSOs might be
mixed and matched. Otherwise, the driver might enable optimizations that
are invalid for separate shaders, causing issues when the shaders are
later treated as separable.
This will fix varying linking with u_blitter's shaders on Panfrost (Bifrost and
older), when util_blitter_clear is used with Panfrost.
[1] There was a TGSI property added recently to forward
nir->info.separate_shader up to virglrenderer, but it's not actually used for
anything in virglrenderer and I am still struggling to understand what the use
case would be. My gut says we should revert b634030542
("tgsi: Add
SEPARABLE_PROGRAM property"), but I'm not interested in fighting that yak right
now. Notably, the u_blitter and hud shaders are separable but are not marked
with this property.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Reviewed-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com >
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17282 >
2022-07-05 17:38:54 +00:00
Emma Anholt
e20329021a
ci/llvmpipe: Skip ssbo.layout.random.all_shared_buffer.36
...
This became too slow with the llvm uprev and now flakes as a timeout.
Fixes: 4d7c11aa8d
("ci/x86: update to llvm 13")
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17304 >
2022-07-05 17:02:33 +00:00
Emma Anholt
00ad29dd23
ci: Uprev deqp to 1.3.3.0.
...
New tests, dEQP line rasterization test fix that lets Intel pass.
Clears out bogus xfails from 1.3.2.0 uprev on a630, which I suspect were
"we lost the device twice on a full run once, and those fails got pasted
in without checking if it happened a full run again" (since we haven't
seen them in other full run attempts).
Also clears out the a630 vk asan xfails (essentially all tests run) by
turning off leak detection which was just catching leaks in vkcts.
Acked-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17304 >
2022-07-05 17:02:33 +00:00
Rhys Perry
d55c4180d5
aco/tests: add vop3p constant combine tests
...
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/16296 >
2022-07-05 16:39:56 +00:00
Rhys Perry
84b404d34d
aco: don't use 32-bit fp inline constants for fp16 vop3p literals
...
If we're applying the literal 0x3f800000 to a fp16 vop3p instruction, we
shouldn't use the 1.0 inline constant, because the hardware will use the
16-bit 1.0: 0x00003c00.
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/16296 >
2022-07-05 16:39:56 +00:00
Rhys Perry
994f9b5a39
aco: try sign-extending or shifting constants in propagate_constants_vop3p
...
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/16296 >
2022-07-05 16:39:56 +00:00
Rhys Perry
33befb58b0
aco: fix redirect combine in propagate_constants_vop3p() with negatives
...
This previously didn't correctly consider negative integers when bits=16
(which sign-extend) and would have combined 0xfffe0000.xy as -2.yx. Now it
combines 0xfffeffff.xy as that instead. It was also skipped when bits=32.
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/16296 >
2022-07-05 16:39:56 +00:00
Rhys Perry
fc39c3a0b1
aco: don't use opsel to fold constants into dot accumulation sources
...
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/16296 >
2022-07-05 16:39:56 +00:00
Rhys Perry
ae74474509
aco: fix propagate_constants_vop3p with integer vop3p and 16-bit constants
...
This would have created a 1.0.xx operand from 0x3c00.xx or 0x3c003c00.xy
for vop3p instructions which have 32-bit operands.
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/16296 >
2022-07-05 16:39:56 +00:00
Rhys Perry
9739c07d9e
aco: fix single-alignbyte do_pack_2x16() path with fp inline constants
...
We were using a 16-bit inline constant with a 32-bit instruction and the
test would have created
"v1: %_:v[0] = v_alignbyte_b32 0.5, %_:v[1][16:32], 2" instead.
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/16296 >
2022-07-05 16:39:56 +00:00
Rhys Perry
5d8f5615d0
aco: ignore precise flag when optimizing integer clamps
...
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/16296 >
2022-07-05 16:39:56 +00:00
Rhys Perry
61eb632775
aco: include _e64 variants of 16-bit min/max in minmax optimizations
...
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/16296 >
2022-07-05 16:39:56 +00:00
Rhys Perry
f2a346eb40
aco: don't accept med3 opcodes in get_minmax_info()
...
I don't think the presence of med3 here breaks anything, but it shouldn't
be here anyway.
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/16296 >
2022-07-05 16:39:56 +00:00