Mike Blumenkrantz
08d8aee222
zink: ci updates
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9624 >
2021-03-17 01:27:00 +00:00
Mike Blumenkrantz
2f3b09e422
zink: set ntv variable descriptor sets during compile phase
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9624 >
2021-03-17 01:27:00 +00:00
Mike Blumenkrantz
c1cdf30a11
zink: apply Delete All The Code methodology to the ubo/ssbo variables
...
gallium rewrites all the ubo/ssbo instructions to use the buffer index as
the instruction src. the nir variables which are passed to zink after that
point are completely worthless, and it's impossible to accurately determine
which one corresponds to which buffer
thus, deleting all the variables and creating new ones based on the buffers
that are used is the best option, and it also enables simplifying a ton
of code as well as doing even better improvements in the future
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9624 >
2021-03-17 01:27:00 +00:00
Mike Blumenkrantz
769c6dce23
zink: move zink_binding() to compiler.c
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9624 >
2021-03-17 01:27:00 +00:00
Mike Blumenkrantz
dbbcf4e780
zink: directly set nir variable bindings for reuse during ntv
...
this lets us prepopulate the binding values without "fetching" them
twice
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9624 >
2021-03-17 01:27:00 +00:00
Mike Blumenkrantz
84293f5395
zink: flatten binding numbers a bit
...
now that descriptor types are split, we can just use the type-max values
per stage as the increment instead of all type max values
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9624 >
2021-03-17 01:27:00 +00:00
Mike Blumenkrantz
eeb23b15eb
zink: break out sized uint array construction into util function
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9624 >
2021-03-17 01:27:00 +00:00
Mike Blumenkrantz
1950f8ec0c
zink: add ntv util function for checking if a glsl type is an atomic counter
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9624 >
2021-03-17 01:27:00 +00:00
Mike Blumenkrantz
90a1aaf956
zink: add debug info about missing atomic ops
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9624 >
2021-03-17 01:27:00 +00:00
Mike Blumenkrantz
5783298027
zink: add unsized array type to get_glsl_type_element() handling
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9624 >
2021-03-17 01:27:00 +00:00
Mike Blumenkrantz
6399906843
zink: also break out whole ntv bo struct pointer construction
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9624 >
2021-03-17 01:27:00 +00:00
Mike Blumenkrantz
99a87a283a
zink: break out bo array type construction into ntv util function
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9624 >
2021-03-17 01:27:00 +00:00
Mike Blumenkrantz
10bfe8759b
zink: use intermediate var for glsl non-array type during shader create
...
minor readability change
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9624 >
2021-03-17 01:27:00 +00:00
Mike Blumenkrantz
2b4609b66c
zink: run nir_convert_from_ssa last during compile
...
running this too early breaks other passes
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9624 >
2021-03-17 01:27:00 +00:00
Dave Airlie
a986d1ed63
lavapipe: add support for KHR_buffer_device_address.
...
Adds the missing magic lowering pass, and stores the pmem
pointer for easier returning to user.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9616 >
2021-03-16 23:05:10 +00:00
Dave Airlie
7b8d53afdd
lavapipe: only init immutable samplers for correct types.
...
This is ported from anv, and it needed to stop crashes with
the buffer_device_address CTS tests
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9616 >
2021-03-16 23:05:10 +00:00
Dave Airlie
c16f63b343
gallivm: convert packing to uint64 not double
...
Fixes some issues with later inttopotr casting.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9616 >
2021-03-16 23:05:10 +00:00
Eric Anholt
f3a7a8a4dc
ci/freedreno: Switch the piglit testing to the new piglit runner.
...
Getting piglit to fit onto our test devices was proving difficult, and we
need the ability to handle flakes, so switch to the rust piglit runner
that @pepp wrote as part of the deqp-runner repo which gives us flake
detection, sharding across boards, fractional runs, and almost half the
runtime.
It doesn't handle piglit subtests yet, but if you can't run piglit's
python on your devices because it's too bloated and unstable, this is a
way forward.
Reviewed-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9468 >
2021-03-16 22:19:30 +00:00
Eric Anholt
0b4691d615
ci: Bump deqp-runner to v0.6.3.
...
This adds a piglit runner that we'll be using on freedreno, better
xfail/unexpectedpass handling for some cases (Missing->Pass, Warn->Warn),
better error logging for the Missing issue we've had in CI, a fix for a
source of Missing, and a pile more unit tests.
As a result, we now catch that the Missing results for a bunch of our
tests have gone away.
Reviewed-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9468 >
2021-03-16 22:19:30 +00:00
Eric Anholt
0a1c533c6e
ci/panfrost: Disable t860/radeonsi testing while the runners are struggling.
...
These jobs keep getting stuck, so disable for now. Info on what is going
on is at
https://gitlab.freedesktop.org/mesa/mesa/-/issues/3437#note_841920 (the
grunt and stoney runners are maybe still operational at the moment)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9636 >
2021-03-16 21:36:22 +00:00
Mike Blumenkrantz
4b063d636e
zink: unset last_vertex_stage_dirty after applying it
...
turns out that having extra flags for stuff isn't that useful if you never reset them
Fixes: 9b8c121917 ("zink: flag shaders as needing update when clip_halfz changes")
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9633 >
2021-03-16 21:29:09 +00:00
Erik Faye-Lund
30cf07cc8a
lavapipe: fix primitive-restart for uint8 indices
...
I forgot to add an implicit primitive-restart index for uint8 while
adding support for this initially. But we also have a nice little
helper to simplify this, so let's use that instead of open-coding.
Fixes: 6526e6d11b ("lavapipe: implement VK_EXT_index_type_uint8")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Eric Anholt <eric@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9622 >
2021-03-16 21:17:16 +00:00
Mike Blumenkrantz
3aa2da96df
zink: add missing null check
...
mismerged from an earlier patch...
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9623 >
2021-03-16 20:42:43 +00:00
Rob Clark
441fba45ed
freedreno: Fix fd_fence_finish()
...
fd_fence_create_unflushed() is called with the driver context, but
fd_fence_finish() is called with the threaded/frontend context, which
is what threaded_context_flush() expects to be passed.
Fixes: c4e5beef07 ("freedreno: threaded_context async flush support")
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9627 >
2021-03-16 17:12:14 +00:00
Eric Anholt
739486de2f
freedreno/a5xx: Fix the max texture buffer size.
...
The GLES minmax is 65536. The blob vulkan exposes 65536 on both a5xx and
a6xx, but try just doing the same as we do for a6xx.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9617 >
2021-03-16 16:15:48 +00:00
Eric Anholt
b93d21810a
freedreno/a5xx: Fix the texel buffer alignment requirement.
...
Info comes from the a540 vulkan blob driver minTexelBufferOffsetAlignment.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9617 >
2021-03-16 16:15:48 +00:00
Jesse Natalie
3b687722b3
d3d12: Really handle null constant buffers
...
Previous attempt was checking the wrong pointer...
Fixes: eb27db86 ("d3d12: Handle null constant buffers")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4362
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9349 >
2021-03-16 15:22:35 +00:00
Jesse Natalie
8708d32d9c
d3d12: Handle is_new_style_shadow comparison filtering
...
Note: the tex instruction is modified in place, so the correct
number of expected result components needs to be cached before
the shadow state is modified
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9349 >
2021-03-16 15:22:35 +00:00
Jesse Natalie
6db28f5201
d3d12: Move descriptor pools to screen, and add lock
...
Surfaces can be shared across contexts, and can even outlive the
original context that created them, so move the pools to the screen.
Since they no longer belong to a single context, they need a lock now.
v2: Samplers moved back to the context
v3: Fix Linux build
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3812
Reviewed-by: Bill Kristiansen <billkris@microsoft.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9349 >
2021-03-16 15:22:35 +00:00
Mike Blumenkrantz
23538ed7a8
zink: cache bufferviews
...
we can cache bufferviews just like we do surfaces, so let's do that
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9543 >
2021-03-16 10:45:32 -04:00
Mike Blumenkrantz
da2b841798
zink: properly handle null bufferview descriptor states
...
now that we have this state properly stored we can use it for more accurate
hashing and caching
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9543 >
2021-03-16 10:45:32 -04:00
Mike Blumenkrantz
ebdc0cd4ad
zink: improve debug asserts for samplers/images during descriptor updates
...
these are now more accurate for null bufferviews/imageviews
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9543 >
2021-03-16 10:45:32 -04:00
Mike Blumenkrantz
545625600b
zink: update null descriptor hashes to reflect current descriptor states
...
also add a bufferview hash since we use these now
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9543 >
2021-03-16 10:45:32 -04:00
Mike Blumenkrantz
c380a46036
zink: add helper function for getting a resource for a descriptor
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9543 >
2021-03-16 10:45:32 -04:00
Mike Blumenkrantz
1b96e3e2b0
zink: massively beef up batch tracking for shader images
...
the struct for these isn't allocated, so we need to ensure that the objects
in it are explicitly tracked on batches when they're used
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9543 >
2021-03-16 10:45:32 -04:00
Mike Blumenkrantz
78068d039b
zink: add extra batch tracking for sampler views
...
we're going to start invalidating and rebinding resources, which means
we need to be extra sure that we have our lifetimes in order here
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9543 >
2021-03-16 10:45:32 -04:00
Mike Blumenkrantz
dc80529e1f
zink: simplify bufferview and imageview descriptor state hashing
...
now that we have the hash for the internal objects available at all times, we
can directly reuse this instead of computing it each time, giving us more
accurate hashes as well as saving us cpu cycles
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9543 >
2021-03-16 10:45:32 -04:00
Mike Blumenkrantz
473ee28cf3
zink: store bufferview hash to bufferview struct
...
this lets us do a lot of things more precisely for bufferviews
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9543 >
2021-03-16 10:45:32 -04:00
Mike Blumenkrantz
5acbba4e41
zink: explicitly use zink_surface objects for sampler/image view objects
...
we can reuse this codepath instead of NIHing it
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9543 >
2021-03-16 10:45:32 -04:00
Mike Blumenkrantz
054f53e3d0
zink: use an explicit zink_buffer_view struct
...
this gives us an object to work with similar to zink_surface
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9543 >
2021-03-16 10:45:32 -04:00
Mike Blumenkrantz
4cb5bb72be
zink: add util function for checking whether shader descriptor is buffer from program
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9543 >
2021-03-16 10:45:32 -04:00
Mike Blumenkrantz
12243f682d
zink: add util function for checking whether a shader descriptor is a buffer
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9543 >
2021-03-16 10:45:32 -04:00
Mike Blumenkrantz
2b18105ff7
zink: add some asserts for pipeline barriers to check renderpass state
...
it's illegal to emit barriers during a renderpass
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9543 >
2021-03-16 10:45:32 -04:00
Mike Blumenkrantz
f4a53287de
zink: handle cached descriptor set punting
...
if an active set gets invalidated, it needs to be punted from the active
hash table so it doesn't get reused
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9543 >
2021-03-16 10:45:32 -04:00
Mike Blumenkrantz
616720d6ae
zink: track resource_object usage instead of resource usage
...
the resource object is now a state tracker for the inner resource_object,
so it can safely be destroyed even if the backing resource is still in use
this also requires updating various things to keep descriptor states/caches working
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9544 >
2021-03-15 22:08:06 -04:00
Mike Blumenkrantz
708f19317c
zink: split out backing resource object create/destroy
...
moving towards these being able to exist semi-independently...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9544 >
2021-03-15 22:08:06 -04:00
Mike Blumenkrantz
46bbc835c1
zink: move resource internals to a separate struct
...
this starts the path towards being able to replace the backing objects for
a resource
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9544 >
2021-03-15 22:08:06 -04:00
Mike Blumenkrantz
f6c6320a5f
zink: break out batch id finding for resource usage into util function
...
this is generally helpful for figuring out the last batch a resource was
used for
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9544 >
2021-03-15 22:08:06 -04:00
Mike Blumenkrantz
c699cc0f9b
zink: avoid looping for non-ubo descriptor updates based on set usage
...
if we know that the descriptor set is cached and already in use by a given
batch, then we also know that all the resources in the set are tracked, which
means that we can skip over some looping during descriptor updates which would
otherwise be used to add tracking for sampler/image views/states
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9567 >
2021-03-16 01:01:57 +00:00
Mike Blumenkrantz
839d609b8c
zink: add batch usage flags for sampler views/states and desc sets
...
this massively cuts down cpu time for hashing and lookups, resulting in
a noticeable performance increase
the sampler_state batch usage for now is just being set for future use when
it will be leveraged to permit immediate deletion
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9567 >
2021-03-16 01:01:57 +00:00