Commit graph

162506 commits

Author SHA1 Message Date
Mike Blumenkrantz
6c59aeebbf zink: handle oom better during descriptor updating
in the case where a new descriptor pool cannot be allocated naturally:
* iterate free batch states and try to free up memory
* iterate in-use batch states and try to free up memory
* ???

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19053>
2022-10-13 03:02:59 +00:00
Mike Blumenkrantz
7b88bc5482 zink: move descriptor function up in file
no functional changes

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19053>
2022-10-13 03:02:59 +00:00
Chad Versace
f8f4648cac venus: Enable Vulkan 1.3
Signed-off-by: Chad Versace <chadversary@chromium.org>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Ryan Neph <ryanneph@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19046>
2022-10-12 16:59:21 -07:00
Chad Versace
85a6a2461d venus: Enable VK_KHR_synchronization2
Signed-off-by: Chad Versace <chadversary@chromium.org>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Ryan Neph <ryanneph@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19046>
2022-10-12 16:59:20 -07:00
Chad Versace
58eb3ac666 venus: Refactor vn_command_buffer_builder temp storage
Easy refactor. Change the storage type from `VkImageMemoryBarrier *` to
`void *`. Prepares for VK_KHR_synchronization2.

The patch series is cleaner with this refactor. I promise.

Signed-off-by: Chad Versace <chadversary@chromium.org>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Ryan Neph <ryanneph@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19046>
2022-10-12 16:59:20 -07:00
Chad Versace
7daedd2a30 venus: Add vn_queue_wait_idle_before_present()
Trivial refactor.

Signed-off-by: Chad Versace <chadversary@chromium.org>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Ryan Neph <ryanneph@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19046>
2022-10-12 16:59:20 -07:00
Chad Versace
cc1407df44 venus: Change signature of vn_get_fence_feedback_cmd
Trivial refactor.

Signed-off-by: Chad Versace <chadversary@chromium.org>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Ryan Neph <ryanneph@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19046>
2022-10-12 16:59:20 -07:00
Chad Versace
e469bedb95 venus/queue: Rename some local vars
Reduces noise in following patches.

Signed-off-by: Chad Versace <chadversary@chromium.org>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Ryan Neph <ryanneph@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19046>
2022-10-12 16:59:19 -07:00
Simon Zeni
c71006726e meson: remove unused EGL_NO_X11 definition
Last EGL header update changed the logic for the Xlib header inclusion. Now
the caller has to specify USE_X11 if they want the Xlib definitions.

Signed-off-by: Simon Zeni <simon@bl4ckb0ne.ca>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18848>
2022-10-12 19:26:01 +00:00
Simon Zeni
96894e6746 EGL: sync headers with Khronos
Since [1], EGL removed the inclusion of the Xlib headers by default.
The logic is now reversed, and the call has to define USE_X11 to include the
Xlib headers instead of EGL_NO_X11_HEADERS to prevent the inclusion.

[1]: 3670d645f4

Signed-off-by: Simon Zeni <simon@bl4ckb0ne.ca>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18848>
2022-10-12 19:26:01 +00:00
Simon Zeni
1fc7f0f084 egl: set API symbols public
With the latest header update from Khronos, KHRONOS_APICALL (which is then
defined as EGLAPI) is empty, preventing the API symbols to be visible.
This commit adds `PUBLIC` to all the symbols from the EGL API that needs to be
visible.

Signed-off-by: Simon Zeni <simon@bl4ckb0ne.ca>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18848>
2022-10-12 19:26:01 +00:00
Simon Zeni
15b931bee7 egl: fix Xlib include in egldisplay.h
Signed-off-by: Simon Zeni <simon@bl4ckb0ne.ca>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18848>
2022-10-12 19:26:01 +00:00
Brian Paul
0c87909bcf draw: fix base vertex bug
Move the assignment of draw->start_index into the num_draws loop
in draw_pt_arrays() so that it's updated for each primitive we're
drawing.  Previously, it was only set once to the 0th primitive's
start index.

This fixes incorrect gl_BaseVertex values when using
vkCmdDrawMultiEXT() with more than one VkMultiDrawInfoEXT item.

Signed-off-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19039>
2022-10-12 18:59:11 +00:00
Brian Paul
4314949277 draw: fix vertex id offset bug
The vertex_id_offset value needs to be used both for the elt and
linear cases.  As it was, if a long primitive was split, the vertex id
seen in the VS was also getting to reset to zero for each batch of the
split prim's vertices.

This fixes at least five VMware test cases (dx11-dxsdk-FluidCS11,
dx11-amd-TressFX-v1.0, dx10-win7-dxsdk-samples-nbodygravity,
dx10-win7-dxsdk-samples-gpuboids, dx10-wide-points).

Signed-off-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19039>
2022-10-12 18:59:11 +00:00
Dylan Baker
3395b40b37 intel/genxml: use Path.replace instead of unlink and rename
Suggested-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18955>
2022-10-12 10:59:15 -07:00
Dylan Baker
ede03c99db intel/genxml: use a main() function
So we have less stuff in the global namespace

Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18955>
2022-10-12 10:59:12 -07:00
Dylan Baker
0ac3b6f671 intel/genxml: split the processing code up
Instead of crewating output or validating in the process code, just
process, then let main handle the rest

Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18955>
2022-10-12 10:59:09 -07:00
Dylan Baker
8c8a1966ab intel/genxml: reprocess xml with elementree output
This makes two relatively small changes, first it addes the encoding to
the xml delcaration, and switches the quote style. Second, it changes
the final newline. These seemed minor enough to not warrent patches to
make the old wrter do the same thing as the new writer.

Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18955>
2022-10-12 10:59:06 -07:00
Dylan Baker
9a185d78ca intel/genxml: use ElementTree.write and .indent
This removes a bunch of hand-written code, and allows for fewer corner
cases. The resulting code has some minor differences (no empty newlines
and the encoding is declared in the xml declaration)

Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18955>
2022-10-12 10:59:03 -07:00
Dylan Baker
b876f4daa9 intel/genxml: re-process with extra whitespace removed
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18955>
2022-10-12 10:59:01 -07:00
Dylan Baker
db8c6590e0 intel/genxml: remove newlines between xml islands
When we move to using etree to print this it won't have them, so this
minimizes the diff further.

Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18955>
2022-10-12 10:58:58 -07:00
Dylan Baker
9acd459bee intel/genxml: re-process with space before />
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18955>
2022-10-12 10:58:56 -07:00
Dylan Baker
b150b89e61 intel/genxml: write a space before the '/>` closing tag
ElementTree.write will do this, and we want to minimize the diff when we
switch from our own writer to the builtin one.

Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18955>
2022-10-12 10:58:49 -07:00
Ruijing Dong
c4482a3c1a radeonsi/vcn: enable multi-slice encoding
- enable h264 multiple slice encoding
- enable hevc multiple slice encoding
- enable hevc block size config options.
- enable amp, strong_intra_smmothing,
         constrained_intra_pred and deblocking filter
         disable config options for hevc encoding.

Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com>
Signed-off-by: Ruijing Dong <ruijing.dong@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18992>
2022-10-12 13:42:15 +00:00
Ruijing Dong
4bcd5ee5b2 radeonsi/vcn: enable dbk in avc encoding
enable deblocking filter in avc encoder.

Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com>
Signed-off-by: Ruijing Dong <ruijing.dong@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18992>
2022-10-12 13:42:15 +00:00
Ruijing Dong
afc9f48858 frontends/va: add h264 dbk enc parameters
Obtain va h264 dbk enc parameters.

Reviewed-by: Sil Vilerino <sivileri@microsoft.com>
Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com>
Signed-off-by: Ruijing Dong <ruijing.dong@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18992>
2022-10-12 13:42:15 +00:00
Ruijing Dong
3d30bf44ce gallium/pipe/video: add data struct for dbk in avc encoding.
add dbk data structure for preparing enabling
avc deblocking filter.

Reviewed-by: Sil Vilerino <sivileri@microsoft.com>
Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com>
Signed-off-by: Ruijing Dong <ruijing.dong@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18992>
2022-10-12 13:42:15 +00:00
Bas Nieuwenhuizen
f00b54bc9e radv: Rework modification detection of the meta cache.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19047>
2022-10-12 12:09:48 +02:00
Bas Nieuwenhuizen
8231f7eaa1 radv: Use a VkPipelineCache handle for meta shaders.
Prep work for using the common vk caches.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19047>
2022-10-12 12:09:48 +02:00
Bas Nieuwenhuizen
911455a0d6 radv: Constify entry_size.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19047>
2022-10-12 12:09:47 +02:00
Samuel Pitoiset
e00ce79003 radv: use SHA1_DIGEST_LENGTH in the pipeline cache
Instead of a magic value.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19047>
2022-10-12 12:09:46 +02:00
Samuel Pitoiset
db62b13ddd radv: move the disk cache to the vk_physical_device struct
To be able to use it from the common pipeline cache implementation.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19047>
2022-10-12 12:09:44 +02:00
Konstantin Seurer
3e22f957d5 radv: Remove create_accel_build_shader
Unused since every kernel is written in GLSL now.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19006>
2022-10-12 08:56:05 +02:00
Mike Blumenkrantz
ddc5c30489 zink: handle global and scratch vars
also delete cs pushconst since that was for clover and I don't care anymore

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19044>
2022-10-11 22:33:01 -04:00
Mike Blumenkrantz
19a74229c9 zink: add some bda handling
will be useful in the near future

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19044>
2022-10-11 22:26:00 -04:00
Mike Blumenkrantz
5cf959393c zink: add a safety assert in descriptor updates
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19038>
2022-10-12 00:12:58 +00:00
Mike Blumenkrantz
d13bae858d zink: move descriptor layout/pool stuff to screen object
this already has locks for async gfx precompiles, but compute shaders
can be compiled on one context and bound on another, which means
all the descriptor stuff they allocate has to be portable:
specifically the pool key ids MUST match across contexts

this is trivially achieved by making pool keys into screen objects

fixes #7434

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19038>
2022-10-12 00:12:58 +00:00
Dylan Baker
20ad1678ab docs: update calendar and link releases notes for 22.2.1
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19040>
2022-10-11 21:30:02 +00:00
Dylan Baker
b860a2b802 docs: Add sha256 sum for 22.2.1
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19040>
2022-10-11 21:30:02 +00:00
Dylan Baker
7406a3e89f docs: add release notes for 22.2.1
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19040>
2022-10-11 21:30:02 +00:00
SoroushIMG
69c22dd817 zink: fix isNan mismatch between NIR and SPIR-V
SPIR-V and Vulkan allow implementations to optimize
float ops assuming inputs are not NaN unless SignedZeroInfNanPreserve
execution mode is enabled.

This means isnan which is turned to nir_op_fneu(a,a) and then emitted
as SpvOpFUnordNotEqual could potentially be optimised to a const 0.

isnan is special in this approach and therefore recognise this pattern,
and emit SpvOpIsNan instead of enabling SignedZeroInfNanPreserve which
will hurt performace of some vulkan drivers.

Fixes dEQP-GL45-ES31.functional.shaders.builtin_functions.common.isnan.*

Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18910>
2022-10-11 20:51:48 +00:00
SoroushIMG
a730b1bb0a zink: stop enabling minmax filtering when not supported
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18910>
2022-10-11 20:51:48 +00:00
SoroushIMG
b87c08b3bf zink: fix invalid Offset set for variables which do not need an offset
Offset decoration in spirv is unsigned and it does not have a notion of an invalid offset.
Unlike NIR which set -1 for invlaid offset. This translates to invalid spirv being produced.
Instead, just don't emit an Offset decoration.

Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18910>
2022-10-11 20:51:48 +00:00
Konstantin Seurer
6eadd6d169 radv/rra: Calculate bvh size requirements recursively
Gets rid of the assumption, that every internal node has the same size.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19017>
2022-10-11 20:27:24 +00:00
Konstantin Seurer
e4283d857b radv/rra: Handle box16 nodes
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19017>
2022-10-11 20:27:24 +00:00
Konstantin Seurer
7754f208ce radv: Use half floats for box16 coords
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19017>
2022-10-11 20:27:24 +00:00
Konstantin Seurer
266f0ae948 radv: Add radv_bvh_node_box16
Adds the last useful node type. The different triangle types can be
derived by addition.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19017>
2022-10-11 20:27:24 +00:00
Konstantin Seurer
5f859f805b radv: Rename node_internal to node_box32
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19017>
2022-10-11 20:27:24 +00:00
Brian Paul
da856af2c9 draw: s/start_or_maxelt/start/ in llvm VS code
Per the now removed comment, the maxelt part of start_or_maxelt was
not used.  Rename to start to avoid confusion.

Signed-off-by: Brian Paul <brianp@vmware.com>
Acked-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19024>
2022-10-11 20:04:37 +00:00
Brian Paul
4c73a503e3 draw: move vs_slot var in tgsi/llvm_fetch_gs_input()
Move the decl to where it's first used.  Remove the unneeded increment.

Signed-off-by: Brian Paul <brianp@vmware.com>
Acked-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19024>
2022-10-11 20:04:37 +00:00