Emma Anholt
a3113fbcfc
zink: Replace the "optimal_tiling" flag with a "linear" flag instead.
...
That's what it actually means now.
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17549 >
2022-08-05 00:23:16 +00:00
Emma Anholt
01ce65da72
zink: Take the tiling path for resources with modifiers.
...
transfer_map (the only consumer of the flag now) was doing direct mapping
on resources with modifiers (UBWC compressed images on turnip) and
accessing them as linear. We definitely want the staging blit path
instead.
Fixes glReadPixels() from gbm surfaces on turnip.
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17549 >
2022-08-05 00:23:16 +00:00
Mike Blumenkrantz
fffd57ef61
zink: store VkFormatFeatureFlags on creation
...
Acked-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17773 >
2022-08-03 17:25:27 +00:00
Mike Blumenkrantz
28ee911ad6
zink: handle mutable swapchain images with dmabuf
...
if a non-kopper swapchain image supports srgb, add a VkImageFormatListCreateInfo
to permit srgb mutability and avoid violating spec
cc: mesa-stable
Acked-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17773 >
2022-08-03 17:25:27 +00:00
TSnake41
a02c026eb7
zink: print result code string on vulkan failure
...
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17726 >
2022-07-28 16:06:50 +00:00
Mike Blumenkrantz
1bc9db6879
zink: split out rp_changed to be more granular for dynamic render
...
sometimes a state change MAY require a renderpass change, but this change
will not require splitting the current renderpass
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17640 >
2022-07-20 17:30:19 +00:00
Eric Engestrom
0ab33ec6d4
zink: use updated tokens from vk.xml
...
Signed-off-by: Eric Engestrom <eric@igalia.com>
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com>
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Acked-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17342 >
2022-07-12 15:53:11 +00:00
Mike Blumenkrantz
4cb3043b53
zink: set PIPE_RESOURCE_FLAG_DONT_MAP_DIRECTLY for device-local resources
...
these can't be mapped, so ensure tc doesn't try to pass UNSYNCHRONIZED
maps and break the resources
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17187 >
2022-06-29 04:40:07 +00:00
Mike Blumenkrantz
6786e508a2
zink: acquire swapchain images on image map
...
this is a weird one
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17149 >
2022-06-28 02:42:02 +00:00
Mike Blumenkrantz
32c34e93aa
zink: add flag to indicate if a resource is a dmabuf
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15810 >
2022-06-22 20:42:02 +00:00
Mike Blumenkrantz
be4f120476
zink: be a little selective about BAR fallback memory type
...
some resources MUST be host-visible, so use the appropriate heap for them
cc: mesa-stable
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17093 >
2022-06-17 01:14:45 +00:00
Mike Blumenkrantz
5750050432
zink: move BAR allocation demotion up the stack
...
having this so far down in the BO allocation path meant that slabs were
getting demoted to device-local and then stored as BAR in the pb cache,
which broke the cache pretty badly
cc: mesa-stable
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17093 >
2022-06-17 01:14:45 +00:00
Mike Blumenkrantz
ce5aa07db1
zink: fix buffer transfer flushes with offsets
...
the src and dst ofsets need to be adjusted by the base map offset
in order to flush the correct region
cc: mesa-stable
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17095 >
2022-06-17 00:56:33 +00:00
Mike Blumenkrantz
28d23c9e26
zink: use only the extents for buffer unmap flushes
...
flush_region is relative to the map, so passing in the offsets again
breaks the flush (if the flush hook is implemented correctly)
cc: mesa-stable
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17095 >
2022-06-17 00:56:33 +00:00
Mike Blumenkrantz
2645430b06
zink: unify actual map calls in buffer mapping
...
make this a bit easier to debug by moving the calls to one place
cc: mesa-stable
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17095 >
2022-06-17 00:56:33 +00:00
Mike Blumenkrantz
dd5d215c62
zink: rename a variable
...
make this a little clearer to read
cc: mesa-stable
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17095 >
2022-06-17 00:56:32 +00:00
Mike Blumenkrantz
4c908e3d7b
zink: only add necessary binds during dmabuf export
...
SHARED might only be present, so add it conditionally
Fixes: 4eeabb59f5 ("zink: rebind resources for export as needed")
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17010 >
2022-06-14 19:21:15 +00:00
Mike Blumenkrantz
5897ade22d
zink: flag renderpass for change if image resource changes valid state
...
the next renderpass instance will need to use different load ops,
so flag it here to ensure that gets picked up
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16877 >
2022-06-06 00:36:20 +00:00
Mike Blumenkrantz
3e2c65281d
zink: track invalidation for image resources
...
an image only has valid data if:
* it's imported
* it's written to
* it's mapped for write
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16877 >
2022-06-06 00:36:20 +00:00
Mike Blumenkrantz
b0fe621459
zink: add back kms handling
...
removing this broke the ability to create system compositors
rework it a bit though so that kms handles are stored and destroyed
when the bo is freed
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16815 >
2022-06-04 01:27:53 +00:00
Mike Blumenkrantz
b17aa29793
zink: handle aux plane imports
...
basically do nothing here and it magically works
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16822 >
2022-06-04 01:05:43 +00:00
Mike Blumenkrantz
d5d7279d38
zink: rename a variable
...
no functional changes
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16822 >
2022-06-04 01:05:43 +00:00
Mike Blumenkrantz
08116638fd
zink: represent plane offsets using offset from plane 0 vs size of plane
...
this is a bit easier to keep track of
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16822 >
2022-06-04 01:05:43 +00:00
Mike Blumenkrantz
c57fa8b390
zink: fix dmabuf plane layout struct scoping
...
this struct needs to exist for all the scopes it's used in
cc: mesa-stable
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16822 >
2022-06-04 01:05:43 +00:00
Mike Blumenkrantz
3304e5b5fb
zink: only infer modifiers if winsys handle has a stride
...
if no stride is passed, the image creation will fail, so avoid this case
fixes:
spec@ext_external_objects@vk-image-overwrite
Fixes: d79c716331 ("zink: create images with modifiers any time there is an import handle")
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16722 >
2022-06-01 01:48:26 +00:00
Mike Blumenkrantz
3d145ec7f1
zink: use global image rebind counter for dmabuf export
...
this is a bit less flimsy and handles more than just framebuffer rebinds
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16476 >
2022-05-20 16:42:21 +00:00
Mike Blumenkrantz
7aee9f12b9
zink: force render target usage for sampler-only resources
...
these might hit u_blitter later, which will require rt usage
to handle texture views, so add rt usage now to avoid failing later
cc: mesa-stable
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16563 >
2022-05-18 02:29:18 +00:00
Mike Blumenkrantz
9924fecee6
zink: fix surface/bufferview cache comparisons
...
these caches ignore pNext from the create info since the pNext cannot
affect the eventual object that is created, so comparing it will break
the hash table
cc: mesa-stable
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16563 >
2022-05-18 02:29:18 +00:00
Mike Blumenkrantz
7057a36359
zink: add extended usage and retry if resource creation fails
...
this is one of those cases where some bizarro format is being created
for sampling only, but gallium blasts out all the bind flags at once
trust that we're not going to do anything too crazy and let surface
usage pruning handle the rest
cc: mesa-stable
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16563 >
2022-05-18 02:29:18 +00:00
Mike Blumenkrantz
1c17502ab3
zink: add extra validation for resource creation
...
check image params against driver's returned limits to avoid
failing later
cc: mesa-stable
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16563 >
2022-05-18 02:29:18 +00:00
Mike Blumenkrantz
07efe6f129
zink: only reject non-blittable resource creation if it has no other binds
...
the idea here is that if a resource is intended to be used solely as a rendertarget
and can't be blitted to or drawn to, then resource creation should fail
but if the resource might be e.g., a texture, then it can probably hit the subdata
path and be fine
Fixes: 37ac8647fc ("zink: reject resource creation if format features don't match attachment")
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16563 >
2022-05-18 02:29:18 +00:00
Michel Zou
dc73de630e
zink: fix pointer size conversion warning
...
fixes: 34e62bfa
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16532 >
2022-05-17 20:20:52 +00:00
Sidney Just
34e62bfa80
zink: implement win32 memory handle import
...
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15504 >
2022-05-15 19:56:49 +00:00
Mike Blumenkrantz
d79c716331
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>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16252 >
2022-05-11 01:30:38 +00:00
Mike Blumenkrantz
4eeabb59f5
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>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16252 >
2022-05-11 01:30:38 +00:00
Mike Blumenkrantz
4a19ebfafc
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>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16252 >
2022-05-11 01:30:38 +00:00
Mike Blumenkrantz
565bf8e45b
zink: force memory exports if dmabuf bind is specified
...
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16252 >
2022-05-11 01:30:38 +00:00
Mike Blumenkrantz
c03f6967cc
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>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16252 >
2022-05-11 01:30:38 +00:00
Mike Blumenkrantz
5513597305
zink: add a bind flag to indicate a resource is exported as a dmabuf
...
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16252 >
2022-05-11 01:30:38 +00:00
Mike Blumenkrantz
8c1d9c7b74
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>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16252 >
2022-05-11 01:30:38 +00:00
Mike Blumenkrantz
17ac8e7604
Revert "zink: export fd info for all 2d images"
...
This reverts commit fda7371b4cfc5a15f2207f5165f3a8e14442a522.
this breaks suballocation
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16252 >
2022-05-11 01:30:38 +00:00
Mike Blumenkrantz
afa4c402dd
zink: break out resource bind-adding into separate function for reuse
...
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16252 >
2022-05-11 01:30:38 +00:00
Mike Blumenkrantz
1c20688dcc
zink: add a flag to indicate whether a resource is exportable
...
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16252 >
2022-05-11 01:30:38 +00:00
Mike Blumenkrantz
00591f3a99
zink: outdent some code
...
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16252 >
2022-05-11 01:30:37 +00:00
Mike Blumenkrantz
d474229ed1
zink: remove unused headers/struct members/linkage
...
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16252 >
2022-05-11 01:30:37 +00:00
Mike Blumenkrantz
c0c69b1be1
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 05:44:56 +00:00
Mike Blumenkrantz
c5583df02b
zink: ignore KMS handle types
...
who could've guessed that such a thing was possible
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16226 >
2022-04-29 00:33:26 +00:00
Mike Blumenkrantz
711c31d607
zink: export fd info for all 2d images
...
there's no way to add this later, so here we go
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16226 >
2022-04-29 00:33:26 +00:00
Mike Blumenkrantz
c025cb9ee9
zink: fix dmabuf plane returns
...
use the actual drm format plane count, not the resource format
cc: mesa-stable
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16226 >
2022-04-29 00:33:26 +00:00
Mike Blumenkrantz
4af98df955
zink: flag swapchain resources as swapchains
...
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16038 >
2022-04-27 21:50:16 +00:00