Commit graph

152658 commits

Author SHA1 Message Date
Georg Lehmann
e2c69cd976 nir/opt_algebraic: Fix mask in shift by constant combining.
The comment above is correct, but the code to calculate the mask was broken.

No Foz-db changes outside of noise.

Fixes: 0e6581b87d ("nir/algebraic: Reassociate shift-by-constant of shift-by-constant")
Signed-off-by: Georg Lehmann <dadschoorse@gmail.com>
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15990>
(cherry picked from commit 66e917fff6)
2022-05-10 21:23:14 -07:00
Jason Ekstrand
3830fb9769 gallium/u_threaded_context: Use PIPE_MAX_SHADER_SAMPLER_VIEWS for sampler_buffers
Sampler views and samplers may not be the same limit; in fact one is 32
while the other is 128.  The sampler_buffers field is tracking sampler
views (yes, naming is confusing) so we should use the right limit.

Fixes: e9c41b3214 ("gallium/u_threaded: add buffer lists - tracking of buffers referenced by tc")
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15988>
(cherry picked from commit 620c5e9dd0)
2022-05-10 21:23:14 -07:00
Icecream95
5b82328bbd pan/mdg: Fix multiple spilt writes in the same bundle
If two instructions in a single bundle both write to a spilt
destination, then we need to reuse the fill and spill instructions,
otherwise the value will be overwritten.

This and the rest of this set of Midgard bug fixes were found from a
vertex shader in Firefox WebRender that is used when a video is
clipped, for example by setting the border-radius CSS property.

CC: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16382>
(cherry picked from commit c65afe541b)
2022-05-10 21:23:14 -07:00
Icecream95
7c24f4fbc9 pan/mdg: Return the instruction from mir_insert_instruction_*_scheduled
We can't return a pointer to the bundle itself because it might move
about in memory.

CC: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16382>
(cherry picked from commit 7b9c976c2d)
2022-05-10 21:23:14 -07:00
Icecream95
7feaf6c548 pan/mdg: Fix mask usage when filling before a spill
Check the bytemask against 0xFFFF rather than 0xF so that the fill is
skipped for a .xyzw write rather than a .x write.

Set the mask on the store to 0xF when doing a read so that all
components are written back.

Fixes: 31d26ebf1b ("pan/mdg: Fill from TLS before spilling non-SSA nodes")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16382>
(cherry picked from commit c750ab8a38)
2022-05-10 21:23:14 -07:00
Icecream95
cf289ff969 pan/mdg: Use MAX2 to set min_alignment
If a value is written in a vector CSEL but then written again by other
instructions, it still needs full alignment, so set min_alignment
using MAX2 to avoid ever reducing it.

Fixes: 1798f6bfc3 ("pan/midgard: Fix masks/alignment for 64-bit loads")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16382>
(cherry picked from commit b281843974)
2022-05-10 21:23:14 -07:00
Icecream95
38ac16dbff pan/mdg: Keep min_bound at 16 when alignment requires it
Otherwise LCRA will try to divide by zero when calculating m_max.

Fixes: 553c2cf16b ("pan/mdg: Set RA bounds for fp16")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16382>
(cherry picked from commit b1ecb90941)
2022-05-10 21:23:14 -07:00
Lionel Landwerlin
9adf6d9d7e nir/lower_shader_calls: put inserted instructions into a dummy block
When moving code into the main block or loop blocks, put the code into
its own :

    if(true) { ... }

block so that we avoid break/continue/return issues.

v2: Also take care of the main block with return instructions

v3: Make deletion more obvious with dummy if blocks (Jason)

v4: Fixup assert for loops (Lionel)

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 8dfb240b1f ("nir: Add raytracing shader call lowering pass.")
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16036>
(cherry picked from commit 35d82ecf1e)
2022-05-10 20:30:36 -07:00
Lionel Landwerlin
34261b1084 nir/lower_shader_calls: don't insert code after break/continue
When moving code from below to the insertion cursor point, if the
cursor points to a jump instruction, don't bother inserting the code.
It would break the break/continue assumptions of NIR and would not be
executed anyway.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 8dfb240b1f ("nir: Add raytracing shader call lowering pass.")
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16036>
(cherry picked from commit 9cf986dcff)
2022-05-10 20:30:36 -07:00
Lionel Landwerlin
a4189af168 nir/lower_shader_calls: don't use nop instructions as cursors
Stop using nop instructions which are causing issues with
break/continue, instead use a nir_cursor (which brings its share of
pain).

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 8dfb240b1f ("nir: Add raytracing shader call lowering pass.")
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16036>
(cherry picked from commit 51dea59eb4)
2022-05-10 20:30:35 -07:00
Jason Ekstrand
29b1c19e6c nir/cf: Return a cursor from nir_cf_extract as well
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16036>
(cherry picked from commit 25661ea028)
2022-05-10 20:30:35 -07:00
Lionel Landwerlin
540fa4ecd7 nir/cf: return cursor after insertion of cf_list
This will be useful to cut code from one location and paste it at
another place and later keep pasting after the previous insertions.

v2: update comment (Jason)
    deal with stiching 2 empty blocks (Jason)

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16036>
(cherry picked from commit d65cf403f3)
2022-05-10 20:30:35 -07:00
Thomas Debesse
7b8c243ae5 gallium/clover: pass -no-opaque-pointers to Clang
Clang opaque pointers have been enabled by default
but the Clover code currently expects them to be disabled.

Signed-off-by: Thomas Debesse <dev@illwieckz.net>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>

Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6342
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16129>
(cherry picked from commit 06e9607478)
2022-05-10 20:08:49 -07:00
Bas Nieuwenhuizen
287a776bed vulkan/wsi/x11: Ensure we have the required number of images for acquire.
For games that needs >1 at the same time the existing check wasn't enough.

Cc: mesa-stable
Reviewed-by: Hans-Kristian Arntzen <post@arntzen-software.no>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15132>
(cherry picked from commit a7f44b6269)
2022-05-10 20:08:49 -07:00
Icecream95
f5707aae3c nir/lower_tex: Copy more fields in lower_tex_to_txd and friends
Fixes NIR validation errors for OpenMW on Panfrost.

Fixes: 1f97819fbe ("panfrost: Emulate GL_CLAMP on Bifrost")
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15939>
(cherry picked from commit ad864a7c15)
2022-05-10 20:08:48 -07:00
Chia-I Wu
a068671262 anv: advertise rectangularLines only for Gen10+
We use the non-strict algorithm (with parallelograms) prior to Gen10 for
wide lines.  We can not advertise rectangularLines.

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Fixes: f6e7de41d7 ("anv: Implement VK_EXT_line_rasterization")
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15432>
(cherry picked from commit b2b810ebff)
2022-05-10 20:08:47 -07:00
Mike Blumenkrantz
07a7306d81 util/blitter: fix sampler restore with 0 saved samplers
in a sequence where a driver saves 0 sampler/views before calling
u_blitter, the previous state of having 0 sampler/views bound would
not be restored as expected, resulting in stale sampler/views which
could affect behavior before new sampler/views were bound

cc: mesa-stable

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16178>
(cherry picked from commit 38ab178c4a)
2022-05-10 20:08:47 -07:00
Dylan Baker
9d05943813 .pick_status.json: Mark 8daf8ff730 as backported 2022-05-10 20:08:36 -07:00
Dylan Baker
32c596ef90 .pick_status.json: Mark 8b28d1751c as backported 2022-05-10 20:08:35 -07:00
Dylan Baker
215b28f5df .pick_status.json: Mark ae369e9f6d as backported 2022-05-10 20:08:33 -07:00
Dylan Baker
aef2c5cb70 .pick_status.json: Mark 0e49ef5c9f as backported 2022-05-10 20:08:31 -07:00
Dylan Baker
da84a8ffe7 .pick_status.json: Mark 9a412c10b7 as backported 2022-05-10 20:08:29 -07:00
Dylan Baker
4b6b9e1889 .pick_status.json: Mark 5ff3fa5912 as backported 2022-05-10 20:08:26 -07:00
Dylan Baker
7533fc00df .pick_status.json: Mark 6317f88b04 as backported 2022-05-10 20:08:26 -07:00
Dylan Baker
00e217bf2e .pick_status.json: Update to 14b1ed1ce1 2022-05-10 20:07:24 -07:00
Mike Blumenkrantz
be08a23dc0 zink: ci regressions 2022-05-10 22:12:31 -04:00
Mike Blumenkrantz
0be76e7ec1 zink: semi-handle 1D sparse texture rewrites for drivers that don't support them
nvidia can't do this, but also nothing uses it, so I've gone ahead and
done the bare minimum here to make cts pass

I think the work to do the shader rewrites should be easy, but without a test
case, I see no point in spending the time for it

Acked-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16100>
2022-05-10 21:45:27 -04:00
Mike Blumenkrantz
2493985aae zink: bump number of image binds that can be batched to 50
this is big enough to batch all the cts binds into a single submit

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16100>
2022-05-10 21:45:27 -04:00
Mike Blumenkrantz
7e0055e4a0 zink: fix multisample conditional in sparse image query
you stare at the code for so long without truly seeing it

cc: mesa-stable

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16100>
2022-05-10 21:45:27 -04:00
Mike Blumenkrantz
d26843de8b zink: set all usage flags when querying sparse features
they're allocated through TexStorage, so they can do everything

cc: mesa-stable

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16100>
2022-05-10 21:45:27 -04:00
Mike Blumenkrantz
e40dd33d1a zink: pass sparse bind bo offset through for texture binds
should fix partial binding with textures

cc: mesa-stable

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16100>
2022-05-10 21:45:27 -04:00
Mike Blumenkrantz
a0771d809e zink: pass sparse backing page offset to binding function
this is the offset of the memory block being bound

cc: mesa-stable

fixes:
KHR-GL46.sparse_buffer_tests.BufferStorageTest

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16100>
2022-05-10 21:45:27 -04:00
Mike Blumenkrantz
7b0d367735 zink: create images with modifiers any time there is an import handle
there's no way to pass in a plane offset otherwise, so this is necessary
in order to handle yuv imports

Reviewed-by: Dave Airlie <airlied@redhat.com>
2022-05-10 21:45:27 -04:00
Mike Blumenkrantz
1ed9c24fb9 zink: rebind resources for export as needed
exporting all resources breaks suballocation, so instead just use the
existing heuristics and then forcibly rebind resources as needed
for this functionality

Reviewed-by: Dave Airlie <airlied@redhat.com>
2022-05-10 21:45:27 -04:00
Mike Blumenkrantz
77127ce4ae zink: add a LINEAR drm modifier if rebinding to add dmabuf export
this needs to have some kind of modifier, so be conservative here

Reviewed-by: Dave Airlie <airlied@redhat.com>
2022-05-10 21:45:27 -04:00
Mike Blumenkrantz
0c9f8d3d05 zink: force memory exports if dmabuf bind is specified
Reviewed-by: Dave Airlie <airlied@redhat.com>
2022-05-10 21:45:27 -04:00
Mike Blumenkrantz
93d28694ce zink: fix conditional for modifier usage
the shared check here was inaccurate; if the resource has dmabuf
export, then use modifiers

Reviewed-by: Dave Airlie <airlied@redhat.com>
2022-05-10 21:45:27 -04:00
Mike Blumenkrantz
c425166bc9 zink: add a bind flag to indicate a resource is exported as a dmabuf
Reviewed-by: Dave Airlie <airlied@redhat.com>
2022-05-10 21:45:27 -04:00
Mike Blumenkrantz
3d82b71516 zink: unset pipe_resource::next pointers when creating resource copies
this otherwise walks the chain and destroys all the resources

cc: mesa-stable

Reviewed-by: Dave Airlie <airlied@redhat.com>
2022-05-10 21:45:27 -04:00
Mike Blumenkrantz
1e2b6e131e zink: always check for fb rebinds when starting renderpass
ensure the right image is being used

Reviewed-by: Dave Airlie <airlied@redhat.com>
2022-05-10 21:45:27 -04:00
Mike Blumenkrantz
d3095f5cf0 Revert "zink: export fd info for all 2d images"
This reverts commit fda7371b4cfc5a15f2207f5165f3a8e14442a522.

this breaks suballocation

Reviewed-by: Dave Airlie <airlied@redhat.com>
2022-05-10 21:45:27 -04:00
Mike Blumenkrantz
2c529a9ab9 zink: create a copy context for the screen on init
Reviewed-by: Dave Airlie <airlied@redhat.com>
2022-05-10 21:45:27 -04:00
Mike Blumenkrantz
89d94335e4 zink: introduce copy contexts
this is for creating a context which is only used for copying images

Reviewed-by: Dave Airlie <airlied@redhat.com>
2022-05-10 21:45:27 -04:00
Mike Blumenkrantz
907c1bab60 zink: break out resource bind-adding into separate function for reuse
Reviewed-by: Dave Airlie <airlied@redhat.com>
2022-05-10 21:45:27 -04:00
Mike Blumenkrantz
2920e0d843 zink: add a flag to indicate whether a resource is exportable
Reviewed-by: Dave Airlie <airlied@redhat.com>
2022-05-10 21:45:27 -04:00
Mike Blumenkrantz
d39eafe93d zink: outdent some code
Reviewed-by: Dave Airlie <airlied@redhat.com>
2022-05-10 21:45:27 -04:00
Mike Blumenkrantz
5068d98157 zink: remove unused headers/struct members/linkage
Reviewed-by: Dave Airlie <airlied@redhat.com>
2022-05-10 21:45:27 -04:00
Mike Blumenkrantz
6f0a7ae37b kopper: remove unused zink include
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16441>
2022-05-10 21:45:27 -04:00
Mike Blumenkrantz
ca9c3ece53 zink: use descriptor surfaces for notemplates ref updating
basically the same codepath as samplerviews now, and fixes
some issues with invalid mem access

cc: mesa-stable

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16167>
2022-05-10 21:45:19 -04:00
Mike Blumenkrantz
efc5ecee9c zink: add more image usage for null surfaces
without null descriptor features, these can be used for all sorts of things

cc: mesa-stable

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16167>
2022-05-10 21:21:04 -04:00