Rhys Perry
14b8227083
nir: add some missing nir_alu_type_get_base_type
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13436 >
2022-01-20 22:54:42 +00:00
Rhys Perry
f2fbba7920
nir/algebraic: optimize open-coded fmulz/ffmaz
...
This pattern will be found in future versions of D3D9 DXVK.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13436 >
2022-01-20 22:54:42 +00:00
Rhys Perry
312a284980
nir/algebraic: add ignore_exact() wrapper
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13436 >
2022-01-20 22:54:42 +00:00
Rhys Perry
f68797ead7
aco: create v_mac_legacy_f32/v_fmac_legacy_f32
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13436 >
2022-01-20 22:54:42 +00:00
Rhys Perry
43e32ad074
aco: consider legacy multiplications in optimizer
...
Optimize omod, -(a*b), b2f(a)*b, a*1, a*0 and create MAD/FMA.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13436 >
2022-01-20 22:54:42 +00:00
Rhys Perry
e7f91b194a
radv,aco,ac/llvm: implement fmulz and ffmaz
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13436 >
2022-01-20 22:54:42 +00:00
Rhys Perry
7f05ea3793
nir: add nir_op_fmulz and nir_op_ffmaz
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13436 >
2022-01-20 22:54:42 +00:00
Ian Romanick
945fb51fb5
intel/fs: Fix gl_FrontFacing optimization on Gfx12+
...
It's not obvious why the (gl_FrontFacing ? -1.0 : 1.0) case was handled
different for Gfx12+ than for previous generations, and it's not
correct. It tries to negate the result as an integer, and it does this
before the mask operation that clears the other bits in the value.
When we eventually support dual-SIMD8 dispatch, the other front-facing
bit is in g1.6 at bit 15, so similar code should be possible there.
Reviewed-by: Matt Turner <mattst88@gmail.com >
Fixes: c92fb60007 ("intel/fs/gen12: Implement gl_FrontFacing on gen12+.")
Closes : #5876
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14625 >
2022-01-20 22:37:18 +00:00
Mike Blumenkrantz
4aaedc20c1
zink: fix non-modifer dmabuf usage
...
drivers/hardware lacking VK_EXT_image_drm_format_modifier can still use dmabuf,
but that setup has to do the old copy to linear scanout instead of copy to
modifier scanout
this requires a couple extra checks to be added to handle the case
Fixes: 619438bf7ce ("zink: check EXT_image_drm_format_modifier for dmabuf support")
fixes #5836
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14597 >
2022-01-20 21:33:54 +00:00
Renato Pereyra
4d95a7f800
anv: add helper methods related to enabling CCS for external images
...
Also, clarify/improve related comments
Signed-off-by: Renato Pereyra <renatopereyra@google.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14416 >
2022-01-20 11:37:29 -08:00
Renato Pereyra
b664349973
anv: Enable implicit CCS for external images
...
AUX and clear state is stored in the VkDevice private binding
Signed-off-by: Renato Pereyra <renatopereyra@google.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14416 >
2022-01-20 11:37:15 -08:00
Mike Blumenkrantz
f86e97ab34
zink: ARB_sparse_texture2
...
there is no vulkan driver that can currently pass all these tests, and
some of the tests themselves are broken, but this seems like it should be
correct
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14381 >
2022-01-20 15:51:30 +00:00
Mike Blumenkrantz
7c918a807b
zink: enable ARB_sparse_texture pipe caps
...
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14381 >
2022-01-20 15:51:30 +00:00
Mike Blumenkrantz
0959fd7f34
zink: handle sparse texture miptail commits
...
basically just allocate pages for miptail levels (probably just one) and
then bind them separately since they're probably never going to be batched
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14381 >
2022-01-20 15:51:30 +00:00
Mike Blumenkrantz
7e03554af0
zink: batch sparse texture binds
...
do 10 binds per submit now (4 is enough for cts but yolo)
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14381 >
2022-01-20 15:51:30 +00:00
Mike Blumenkrantz
30bd4ff72e
zink: handle min_lod texture operands
...
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14381 >
2022-01-20 15:51:30 +00:00
Mike Blumenkrantz
ac30051a5d
zink: emit sparse residency cap in ntv
...
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14381 >
2022-01-20 15:51:30 +00:00
Mike Blumenkrantz
d76694a18f
zink: only allocate ntv residency info if it will be used
...
odds are it will never be used, so don't bother allocating
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14381 >
2022-01-20 15:51:30 +00:00
Mike Blumenkrantz
7e7c94afaa
zink: add nir_intrinsic_image_deref_sparse_load to image scanning in compiler
...
this flags the shader as having image use
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14381 >
2022-01-20 15:51:30 +00:00
Mike Blumenkrantz
60d0a0a8ce
zink: always pass shader info to ntv
...
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14381 >
2022-01-20 15:51:30 +00:00
Mike Blumenkrantz
0af2b7740b
zink: rename zink_so_info -> zink_shader_info
...
start passing more useful info to ntv
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14381 >
2022-01-20 15:51:30 +00:00
Mike Blumenkrantz
73ef54e342
zink: handle residency return value from sparse texture instructions
...
this one's a bit tricky since vulkan doesn't support vec5, the return from
the instructions is a struct, and I don't want to add temp var support to zink
now instead the process for these ops is:
* rewrite the is_sparse_texels_resident instruction to read the first vec member of the texop
* (temporarily) decrement num_components for sparse texop's dest to get real result size
* wrap texop's return type in spirv-required struct(uint, result)
* unwrap struct, store result normally + store residency info to separate array
* for is_sparse_texels_resident, ignore the mov alu for src[0] and instead use the ssa index
from the parent instr since this is the original texop that was used to store the residency result
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14381 >
2022-01-20 15:51:30 +00:00
Mike Blumenkrantz
dfc74d703e
zink: always set actual_dest_type for ntv tex instruction emission
...
no-op for now
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14381 >
2022-01-20 15:51:30 +00:00
Mike Blumenkrantz
3c05646fbe
zink: implement sparse shader instructions in ntv
...
this automatically wraps the results into the required struct(int, result) type,
handling will come next
note that there is no cts coverage for sparseImageLoadARB, so this is purely
hypothetical
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14381 >
2022-01-20 15:51:30 +00:00
Mike Blumenkrantz
1bbcd68d5f
zink: fake sparse R9G9B9E5 support as needed
...
these just allocate the whole thing now, which means they aren't actually
sparse, but who cares because nobody but cts is actually going to use it
and those tests pass just fine
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14381 >
2022-01-20 15:51:30 +00:00
Mike Blumenkrantz
d83b52928c
zink: stop allocating such massive staging regions for buffer maps
...
this would allocate a new stream uploader for every map if the offset was
large (e.g., all sparse buffer usage), which almost immediately consumes all vram
cc: mesa-stable
fixes KHR-GL46.CommonBugs.CommonBug_SparseBuffersWithCopyOps
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14381 >
2022-01-20 15:51:30 +00:00
Mike Blumenkrantz
7753ca2a45
zink: allow sparse buffers to be suballocated
...
this is now symmetrical since the backing memory was being cached,
and there's no reason not to allow this since memory is no longer in use
by the time it gets returned to the cache
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14381 >
2022-01-20 15:51:30 +00:00
Mike Blumenkrantz
9fd155697a
zink: support sparse texture range commits
...
this is a bit duplicated because the buffer and image commit code is
a little shared but not enough to combine without becoming spaghetti
this will only get worse once multisampling is supported
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14381 >
2022-01-20 15:51:30 +00:00
Mike Blumenkrantz
d320e8328d
zink: set up image create bits for sparse textures
...
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14381 >
2022-01-20 15:51:30 +00:00
Mike Blumenkrantz
2e57c2c029
zink: add get_sparse_texture_virtual_page_size hook
...
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14381 >
2022-01-20 15:51:30 +00:00
Danylo Piliaiev
cadcbed258
tu: expose VK_KHR_copy_commands2
...
Relevant CTS tests:
dEQP-VK.api.copy_and_blit.copy_commands2.*
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14623 >
2022-01-20 10:43:31 +00:00
Charles Giessen
6ea7a61d7a
v3dv: Update LoaderICDInterfaceVersion to v5
...
With the proper version checking in the common vulkan instance code
(commit 88b9b68 ) it is now possible to bring the reported interface
version up to v5.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14563 >
2022-01-20 07:25:07 +00:00
Charles Giessen
4e0604279d
freedreno, tu: Update LoaderICDInterfaceVersion to v5
...
With the proper version checking in the common vulkan instance code
(commit 88b9b68 ) it is now possible to bring the reported interface
version up to v5.
Reviewed-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14563 >
2022-01-20 07:25:07 +00:00
Charles Giessen
6eb8ceac87
lavapipe: Update LoaderICDInterfaceVersion to v5
...
With the proper version checking in the common vulkan instance code
(commit 88b9b68 ) it is now possible to bring the reported interface
version up to v5.
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14563 >
2022-01-20 07:25:07 +00:00
Charles Giessen
0988e4ae09
anv: Update LoaderICDInterfaceVersion to v5
...
With the proper version checking in the common vulkan instance code
(commit 88b9b68 ) it is now possible to bring the reported interface
version up to v5.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14563 >
2022-01-20 07:25:07 +00:00
Charles Giessen
a2ec6bf60f
panvk: Update LoaderICDInterfaceVersion to v5
...
With the proper version checking in the common vulkan instance code
(commit 88b9b68 ) it is now possible to bring the reported interface
version up to v5.
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14563 >
2022-01-20 07:25:07 +00:00
Charles Giessen
80a99ae906
radv: Update LoaderICDInterfaceVersion to v5
...
With the proper version checking in the common vulkan instance code
(commit 88b9b68 ) it is now possible to bring the reported interface
version up to v5.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14563 >
2022-01-20 07:25:07 +00:00
Dave Airlie
8733d19f53
meson: start building intel earlier.
...
as intel perf is a big impact, start building the intel subdir
earlier so there is less chance of long stalls at the end waiting
for one file to link other things.
Reviewed-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Matt Turner <mattst88@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14630 >
2022-01-20 06:41:17 +00:00
Dave Airlie
acc2d08cf9
intel/perf: use a function to do common allocations
...
This cuts the compile time down for this file on my ryzen from
real 1m4.077s
to
real 0m30.827s
Reviewed-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Matt Turner <mattst88@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14630 >
2022-01-20 06:41:17 +00:00
Tapani Pälli
521ede8451
mesa: refactor GetProgramiv to use program resource list
...
This way we make sure glGetActiveUniform and glGetProgramiv
are in sync about active uniform count.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5885
Cc: mesa-stable
Signed-off-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14589 >
2022-01-20 05:52:53 +00:00
Emma Anholt
7a8d651d50
ci/softpipe: Drop the GS sampling known-flakes.
...
They haven't appeared in the last half a year since I added the IRC flake
reports.
Acked-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14627 >
2022-01-20 05:41:07 +00:00
Emma Anholt
bee77d3a82
softpipe: Request that st fix up DST_ALPHA blending for RGB render targets.
...
Fixes a render target of
dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.0
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14627 >
2022-01-20 05:41:07 +00:00
Emma Anholt
263faa3dfb
softpipe: respect !independent_blend_enable for color masks.
...
blend_buf is the resolved "are we using independent blending?" index, cbuf
is the RT we're drawing to.
Cc: mesa-stable.
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14627 >
2022-01-20 05:41:07 +00:00
Mike Blumenkrantz
0c31ab34d2
lavapipe: fix ptralloc typo
...
these calculations are so tricky I can't even type them again
Fixes: 48fde98b79 ("lavapipe: replace hard pointer calcs in dynamic render with ptralloc")
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14631 >
2022-01-19 21:05:03 -05:00
Dave Airlie
4b8d84f71a
mesa/st: merge texture obj/image alloc/free into mesa
...
This just drops the st wrappers for alloc/free of texture images
and objects.
Acked-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14327 >
2022-01-20 10:54:08 +10:00
Dave Airlie
cd0961dce2
mesa/st: merge texture object/image structs into mesa
...
This just merges the subclasses into main class
Acked-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14327 >
2022-01-20 10:54:03 +10:00
Dave Airlie
ea3e700e35
mesa/st: cleanup last bits of st perfmon code.
...
Just some small cleanups left to finish perfmon code movement.
Acked-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14327 >
2022-01-20 10:54:01 +10:00
Dave Airlie
bc9b176aef
mesa/st: move perfmon code from st into mesa
...
This merges the perfmon code after the objects have been merged.
Acked-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14327 >
2022-01-20 10:53:58 +10:00
Dave Airlie
1e2ded21ba
mesa/st: merge perfmon groups init/cleanup from st into mesa
...
This moves the init/cleanup code from st into mesa.
Acked-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14327 >
2022-01-20 10:53:55 +10:00
Dave Airlie
350dbb000e
mesa/st: merge perfmon counters/groups objects from st into mesa
...
This merges subclassed or side allocated objects into the main
ones.
Acked-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14327 >
2022-01-20 10:53:50 +10:00