Timothy Arceri
fbabd2163d
util/disk_cache: fix crash in fossilize_db
...
We don't need to close the file here check_files_opened_successfully()
already does that for us if needed.
This fixes a crash when invalid filename/paths are provided to the
MESA_DISK_CACHE_READ_ONLY_FOZ_DBS environment variable.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9251 >
2021-02-25 03:27:14 +00:00
Mike Blumenkrantz
ba4bc54dea
zink: rename zink_context::buffers -> vertex_buffers (and usage mask)
...
this is more descriptive
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9272 >
2021-02-24 21:41:05 -05:00
Mike Blumenkrantz
cfc669585b
zink: use dynamic vertex buffer strides
...
this removes another case of needing to rehash/create a new pipeline
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9272 >
2021-02-24 21:41:05 -05:00
Mike Blumenkrantz
9d0434bf64
zink: make dynamic state usage in pipeline creation more explicit/flexible
...
we'll be expanding this, so we want to have it very easy to update and read
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9272 >
2021-02-24 21:41:05 -05:00
Mike Blumenkrantz
51e527a9ba
zink: setup CmdBindVertexBuffers2EXT member in screen for dynamic state
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9272 >
2021-02-24 21:41:05 -05:00
Marek Olšák
f827b29234
nouveau_vieux: use align_calloc for the context to fix m32 crashes
...
Fixes: 3175b63a0d "mesa: don't allocate matrices with malloc"
Reviewed-by: Eric Anholt <eric@anholt.net >
Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9220 >
2021-02-25 02:33:12 +00:00
Marek Olšák
81cf4bef7e
radeon,r200: use align_calloc for the context to fix m32 crashes
...
Fixes: 3175b63a0d "mesa: don't allocate matrices with malloc"
Reviewed-by: Eric Anholt <eric@anholt.net >
Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9220 >
2021-02-25 02:33:12 +00:00
Marek Olšák
75d5c1229e
i915: use align_calloc for the context to fix m32 crashes
...
Fixes: 3175b63a0d "mesa: don't allocate matrices with malloc"
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4295
Reviewed-by: Eric Anholt <eric@anholt.net >
Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9220 >
2021-02-25 02:33:12 +00:00
Mike Blumenkrantz
22fc869187
zink: set VK_IMAGE_LAYOUT_PRESENT_SRC_KHR on fb resources at eof flush
...
this should maybe fix garbled images on amd?
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9243 >
2021-02-24 21:09:52 -05:00
Mike Blumenkrantz
55f05638f5
zink: handle VK_IMAGE_LAYOUT_PRESENT_SRC_KHR barriers
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9243 >
2021-02-24 21:09:52 -05:00
Mike Blumenkrantz
c5292710c4
zink: handle PIPE_FLUSH_DEFERRED
...
these flushes queue the fence to be submitted on the next finish call, so
we have to store the context to the fence to be able to handle threaded calls
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9243 >
2021-02-24 21:09:52 -05:00
Mike Blumenkrantz
c271ac0066
zink: add util function for returning previous batch
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9243 >
2021-02-24 21:09:52 -05:00
Mike Blumenkrantz
24b237d3d4
zink: add a define for compute batch count
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9243 >
2021-02-24 21:09:52 -05:00
Mike Blumenkrantz
ef3dc995a9
zink: only flush batches in pipe_context::flush if they actually have work
...
no need to submit command buffers to the queue which have no commands, so we
can just proceed to give back an inactive fence object that always returns success
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9243 >
2021-02-24 21:09:52 -05:00
Antonio Caggiano
9dac191f6e
zink: fix destroy batch
...
Extract batch destruction in its own function, then make sure to
release objects.
Signed-off-by: Antonio Caggiano <antonio.caggiano@collabora.com >
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9243 >
2021-02-24 21:09:52 -05:00
Mike Blumenkrantz
da2d8f1078
zink: create a single fence per batch on startup and then reuse
...
previously we would be creating a new fence per batch for every submit,
but we can just reset and reuse them if we're careful with it
based on original patch by Antonio Caggiano
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9243 >
2021-02-24 21:09:52 -05:00
Mike Blumenkrantz
a27570326f
zink: reorder zink_bind_vertex_buffers()
...
we should be making this a no-op if we have no bindings (somehow)
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9241 >
2021-02-24 20:47:51 -05:00
Mike Blumenkrantz
381e92e811
zink: move samplerview referencing around in update_descriptors()
...
no functional changes
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9241 >
2021-02-24 20:47:51 -05:00
Mike Blumenkrantz
679dd69741
zink: avoid memset during update_descriptors() for resources refs
...
we can simplify this a bit to further reduce cpu usage here
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9241 >
2021-02-24 20:47:51 -05:00
Dave Airlie
7826648e14
lavapipe: fix depth texturing swizzle
...
This is pretty much derived from what works and passes
both GL via zink and VK-GL-CTS test suites.
The zink multisample regressions tests rendered black, so
"passed" before, now they render more junk.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9260 >
2021-02-25 01:32:33 +00:00
Eric Anholt
6d2b2515c4
freedreno/a5xx+: Drop the unused no_decode_srgb flag.
...
This was a flag used for a4xx GMEM draws.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9267 >
2021-02-25 00:38:11 +00:00
Eric Anholt
9522087b75
freedreno/a5xx+: Stop recompiling on texture samples changes.
...
The shader only looks at this bit of the key on a3xx, and a4xx already
didn't set it. This will help give us precompile hits for MSAA texture
sampling.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9267 >
2021-02-25 00:38:11 +00:00
Eric Anholt
c93fd1046a
freedreno: Use the mesa/st frontend lowering of GL_CLAMP.
...
350 lines of code for this stupid feature, and we weren't even doing it
right for CS/GS/tess.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9267 >
2021-02-25 00:38:11 +00:00
Mike Blumenkrantz
05d0514a8f
zink: ci updates
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9115 >
2021-02-24 23:25:01 +00:00
Mike Blumenkrantz
cf8ca77be1
zink: handle point sprite
...
this needs custom yinvert handling and also prim mode detection, which
gallium can't do on its own
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9115 >
2021-02-24 23:25:01 +00:00
Mike Blumenkrantz
b9676976d0
zink: store prim mode to context during draw
...
we need to be able to access this for shader rewrites
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9115 >
2021-02-24 23:25:01 +00:00
Mike Blumenkrantz
2e60929b47
nir/texcoord_replace: add a yinvert param
...
vulkan needs to invert the y coord in order to handle PIPE_SPRITE_COORD_LOWER_LEFT
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9115 >
2021-02-24 23:25:01 +00:00
Mike Blumenkrantz
707dc04b78
zink: no-op descriptor updating for draws without descriptors
...
this is a valid case that we can trivially shortcut to cut down on calls
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9155 >
2021-02-24 22:44:50 +00:00
Eric Anholt
5fa27e6670
freedreno: Drop custom driver lowering of GL's color clamping.
...
The mesa/st frontend can do it for us now that we don't need to worry
about breaking precompiles.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8997 >
2021-02-24 21:48:54 +00:00
Eric Anholt
3b9f6af1a9
freedreno: Drop custom driver lowering of two-sided color.
...
The GL frontend can do it for us now, so just use their code instead of
our own shader variants. In the past we had to do hide the GL shader
variants in the driver to get precompiles from st, but no longer as of
!8601 .
I tested with drawoverhead -test 6 (shader program change, n=30) and -test
1 (no statechanges, n=43) and saw no change in driver overhead.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8997 >
2021-02-24 21:48:54 +00:00
Eric Anholt
de17b4aab5
freedreno: Remove uniform variables after finalizing NIR.
...
mesa/st optimizes the uniform storage if you have the finalize hook in
place, causing the uniforms declared to potentially not have storage in
the ParameterValues list any more. If you leave your uniforms around in
the NIR, then a later finalization after variant creation will re-add the
uniforms to parameters, defeating the optimization and likely reallocating
the uniform storage (causing use-after-free). So, we have to do this
before we can start using variants in mesa/st.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8997 >
2021-02-24 21:48:54 +00:00
Eric Anholt
9fcc369770
mesa: Always make sure uniform storage doesn't get reallocated.
...
Every caller of associate_uniform_storage was doing this to safety-check
that the uniform storage didn't get reallocated, except for
st_deserialise_ir_program(). This ended up leaving an opening for
use-after-free without hitting the assert in the hot-cache case (and I
found it on freedreno). Having added it, it also reveals use-after-frees
in the drawpixels shader variant cases on llvmpipe and zink.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8997 >
2021-02-24 21:48:54 +00:00
Mauro Rossi
3468c0dd4d
android: mesa: Move the FXT1 compressor/decompressor to util/
...
After commit a46b73e in order to build mesa for Android
we need to generate $(intermediates)/util/format/u_format_pack.h
instead of $(intermediates)/format/u_format_pack.h
Fixes the following building error in Android build:
external/mesa/src/util/format/u_format_fxt1.c:28:10: fatal error: 'util/format/u_format_pack.h' file not found
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
Fixes: a46b73e ("mesa: Move the FXT1 compressor/decompressor to util/")
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9240 >
2021-02-24 21:29:14 +00:00
Jose Fonseca
a4ffa25ee8
scons: Add u_format_pack.h include path.
...
Fixes MSVC SCons build.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9263 >
2021-02-24 20:48:47 +00:00
Mike Blumenkrantz
a6c72af908
zink: use 0 as default for spec constants
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9258 >
2021-02-24 19:15:48 +00:00
Eric Anholt
978d244114
ci/iris: Move the traces yml file to the driver-specific dir.
...
Since the job is manual, I missed it in the move and it got dropped from
the artifacts.
Fixes: 60d413b894 ("ci: Move the piglit expectations lists to the per-driver CI dirs.")
Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9226 >
2021-02-24 18:55:02 +00:00
Eric Anholt
bcea453d4a
ci/piglit: Stop including the test counts at the end of expectations.
...
It's just a ton of fuss for driver developers fixing piglit tests. This
makes the trace expectation files pretty silly (empty expectation, but
you'll get a diff to a non-empty result when something fails)
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Acked-by: Adam Jackson <ajax@redhat.com >
Acked-by: Andres Gomez <agomez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9226 >
2021-02-24 18:55:02 +00:00
Dave Airlie
1121ea8192
lavapipe: fix descriptor set layout freeing.
...
Have to store the used allocator otherwise ends up being free wrong.
Fix for
dEQP-VK.api.object_management.alloc_callback_fail.descriptor_set_layout*
Fixes: f94a5f30e0 ("lavapipe: add reference counting to descriptor set layout")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9247 >
2021-02-25 04:38:44 +10:00
Kenneth Graunke
b9133e48a6
iris: Pin surface state buffers after possibly updating the clear color
...
On Gen8, updating the clear color will end up allocating new
SURFACE_STATE entries. These might end up living in a different BO
than the original copies, which means that we have to pin _after_
updating the clear color, not before.
Found by inspection.
Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com >
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9257 >
2021-02-24 18:32:29 +00:00
Eric Anholt
60573b443b
v3d: Replace driver lowering of GL_CLAMP with mesa/st's.
...
Mesa core can do this logic for us now.
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9228 >
2021-02-24 18:03:46 +00:00
Rob Clark
e6bacd3e9a
v3d: Drop foreach_bit() macro
...
Now that we have a global one.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9191 >
2021-02-24 17:11:44 +00:00
Rob Clark
0ca5b1a6b9
etnaviv: Drop foreach_bit() macro
...
Now that we have a global one.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9191 >
2021-02-24 17:11:44 +00:00
Rob Clark
2b020e84e7
freedreno: Drop foreach_bit() macro
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9191 >
2021-02-24 17:11:44 +00:00
Rob Clark
e5a64e34d8
freedreno/ir3: Drop foreach_bit() macro
...
Now that there is a global one in util/bitscan.h
Note this version had an extra assert which is not really suitable to a
generic foreach_bit().. just move the assert to the two usages of the
iterator macro.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9191 >
2021-02-24 17:11:44 +00:00
Mike Blumenkrantz
025b57524f
anv: for_each_bit -> foreach_bit
...
Reviewed-by: Rob Clark <robclark@freedesktop.org >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9191 >
2021-02-24 17:11:44 +00:00
Mike Blumenkrantz
77cba4b9f2
freedreno/vulkan: for_each_bit -> foreach_bit
...
Reviewed-by: Rob Clark <robclark@freedesktop.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9191 >
2021-02-24 17:11:44 +00:00
Mike Blumenkrantz
6875e10350
radv: for_each_bit -> foreach_bit
...
Reviewed-by: Rob Clark <robclark@freedesktop.org >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9191 >
2021-02-24 17:11:44 +00:00
Mike Blumenkrantz
e89f158b82
v3dv: remove for_each_bit() macro
...
this was unused
Reviewed-by: Rob Clark <robclark@freedesktop.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9191 >
2021-02-24 17:11:44 +00:00
Mike Blumenkrantz
e7c7150d63
util/bitscan: add u_foreach_bit macros
...
this is a standardized (and very slightly improved for usability) version
of the macro that has been copied into every vulkan driver
includes fixup from Rob Clark <robclark@freedesktop.org >
Reviewed-by: Rob Clark <robclark@freedesktop.org >
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9191 >
2021-02-24 17:11:44 +00:00
Mike Blumenkrantz
618f46ee02
zink: add more ci flakes
...
wtf
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9242 >
2021-02-24 17:02:45 +00:00