Jason Ekstrand
893fa30afe
anv: Include scissors in viewport calculations
...
It's tricky to always get the render area to the viewport code. In
particular, it's not provided to secondary command buffers as part of
the inheritance info so we have to bend over backwards and look for a
framebuffer. With VK_KHR_dynamic_rendering, there is no framebuffer and
this approach won't work and we'll need something better if we want
competent guardbands in secondary command buffers.
The good news is that any client that's sloppily rendering and trusting
the clipper to keep things inside the render area will set a scissor and
that's something they have to set inside the secondary. We can dig
through the scissor state and also include the corresponding scissor (if
any) and use that for our render area. This should give us the same
secondary command buffer performance with VK_KHR_dynamic_rendering.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14961 >
2022-03-16 13:13:45 -05:00
Jason Ekstrand
b4e38e174f
anv: Move viewport/scissor emit to genX_cmd_buffer.c
...
There's never been a particularly good reason to stick these in gfx7/8.
We mostly did it to deduplicate the binary a bit but this shouldn't emit
all that much code.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14961 >
2022-03-16 13:13:45 -05:00
Jason Ekstrand
2c04373c45
anv: Calculate the real guardband based on render area
...
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14961 >
2022-03-16 13:13:45 -05:00
Jason Ekstrand
12d815bcac
intel/guardband: Take min/max instead of total size
...
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14961 >
2022-03-16 13:13:45 -05:00
Jason Ekstrand
3501a3f9ed
anv: Convert to 100% dynamic rendering
...
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14961 >
2022-03-16 13:13:36 -05:00
Jason Ekstrand
8112e6d601
anv: Drop pipeline pass/subpass in favor of rendering_info
...
This is about the only "small" change we can make in the process of
converting from render-pass-based to dynamic-rendering-based. Make
everything in pipeline creation work in terms of dynamic rendering and
create the dynamic rendering structs from the render pass as-needed.
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14961 >
2022-03-16 12:51:16 -05:00
Jason Ekstrand
ee9c068043
anv/pipeline: Stop pretending we're the validator
...
This was ill-conceived at best. Yes, it checks for a few error
conditions but it doesn't check much and what checks it has are very far
away from the code that relies on those invariants. If we care about
these invariants, we should add asserts near the code that makes those
assumptions rather than pretending to be the validation layers.
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14961 >
2022-03-16 12:51:16 -05:00
Jason Ekstrand
2da152b5e6
anv: Stop treating color input attachments specially
...
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14961 >
2022-03-16 12:51:15 -05:00
Jason Ekstrand
1ad0f1b004
anv/pass: Make unused color attachments VK_ATTACHMENT_UNUSED
...
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14961 >
2022-03-16 12:51:15 -05:00
Jason Ekstrand
9bbecbed7a
anv: Better null surface state size for dynamic rendering
...
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14961 >
2022-03-16 12:51:15 -05:00
Jason Ekstrand
fff3f8bfe5
anv: Fix handling of null depth/stencil attachments with dynamic rendering
...
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14961 >
2022-03-16 12:51:15 -05:00
Jason Ekstrand
030b231ba9
vulkan/framebuffer: Add a flags field
...
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14961 >
2022-03-16 12:51:15 -05:00
Jason Ekstrand
c3d8ca9300
vulkan/render_pass: Add an optimization for UNDEFINED+LOAD_OP_CLEAR
...
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14961 >
2022-03-16 12:51:15 -05:00
Jason Ekstrand
17395d395a
vulkan/render_pass: Support fragment shading rate
...
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14961 >
2022-03-16 12:51:15 -05:00
Jason Ekstrand
6b61953684
vulkan/render_pass: Provide self-dependeny information
...
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14961 >
2022-03-16 12:51:15 -05:00
Jason Ekstrand
ca5ad9cbee
vulkan: Add helpers for getting rendering info from a renderpass
...
These helpers are used by vkCreateGraphicsPipelines to get the
VkPipelineRenderingCreateInfo and in vkCmdBeginCommandBuffer to get the
VkCommandBufferInheritanceRenderingInfo. This is required because the
Vulkan runtime code can't yet hook and modify calls made to driver-
provided functions. Instead, we just provide a helper to be used in leu
of vk_find_struct_const(). The structs themselves are stored in the
render pass so we can pass back a pointer and there's no need to
construct one on the stack or stuff it in the pipeline.
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14961 >
2022-03-16 12:51:15 -05:00
Jason Ekstrand
1d726940d2
vulkan: Add a common CmdBegin/EndRederPass implementation
...
This implements vkCmdBeginRenderPass, vkCmdEndRenderPass, and
vkCmdNextSubpass in terms of the new vkCmdBegin/EndRendering included in
VK_KHR_dynamic_rendering and Vulkan 1.3. All subpass dependencies and
implicit layout transitions are turned into actual barriers. It does
require VK_KHR_synchronization2 because it always uses the 64-bit
version of the pipeline stage and access bitfields.
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14961 >
2022-03-16 12:51:15 -05:00
Jason Ekstrand
874aeb8743
vulkan: Add a common vk_render_pass struct
...
This basically contains everything in pCreateInfo plus one or two extra
bits that might be useful.
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14961 >
2022-03-16 12:51:15 -05:00
Jason Ekstrand
83101429bf
anv: Convert to vk_framebuffer
...
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14961 >
2022-03-16 12:51:15 -05:00
Jason Ekstrand
d84e6b8f22
vulkan: Add a common vk_framebuffer struct
...
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14961 >
2022-03-16 12:51:15 -05:00
Jason Ekstrand
acbb0d86f7
panvk: Implement VK_EXT_vertex_attribute_divisor
...
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15295 >
2022-03-16 09:58:55 -05:00
Boris Brezillon
58587c32cb
panvk: Implement indexed rendering
...
Since we can do 8-bit index buffers, also advertise VK_EXT_type_uint8.
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15295 >
2022-03-16 09:58:46 -05:00
Boris Brezillon
a08b695386
panvk: Fix per-instance attribute handling
...
We were assuming per-vertex attributes so far. Let's extend the logic
to support per-instance attributes with or without custom instance
divisors. Now that we've got it all hooked up, we can enable
VK_EXT_vertex_attribute_divisor.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15295 >
2022-03-16 09:57:51 -05:00
Boris Brezillon
417cf3d35e
panvk: No-op zero-vertex draws
...
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15295 >
2022-03-16 09:57:51 -05:00
Gert Wollny
3244100557
Revert "virgl: Enable PIPE_CAP_TGSI_TEXCOORD when the host supports it"
...
This reverts commit 2fbb4e85f7 .
With this CAP enabled the host doesn't correctly handle the passing
the invariant flag between stages, and using surfaceless in the
client seems to trigger this error
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15409 >
2022-03-16 14:33:54 +01:00
Samuel Pitoiset
60517948af
radv: fix missing destruction of the inotify thread
...
The notifier state must be destroyed when a device is destroyed. Oops.
This fixes crashes at launch with The Witcher 3.
Fixes: c50557d961 ("radv: allow applications to dynamically change RADV_FORCE_VRS")
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/15405 >
2022-03-16 11:57:41 +00:00
Vadym Shovkoplias
550f48a826
anv: implement EXT_depth_clip_control
...
A new extension allowing the application to use the OpenGL depth
range in NDC, i.e. with depth in range [-1, 1], as opposed to
Vulkan’s default of [0, 1].
v2:
- call gfx8_cmd_buffer_emit_viewport on ANV_CMD_DIRTY_PIPELINE (Jason)
- remove redundant !! operator since negativeOneToOne must be true or
false (Tapani)
- coding style changes (Lionel)
Gitlab: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6070
Signed-off-by: Vadym Shovkoplias <vadym.shovkoplias@globallogic.com >
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15304 >
2022-03-16 11:22:24 +00:00
Charlie Turner
61ad60dc00
ci, radv: Update flake expectations
...
dEQP-VK.api.object_management.multithreaded_shared_resources.image_2d
is flakey crashing on RENOIR and VEGA10.
Thanks Rhys Perry for pointing out the flake.
Acked-by: Martin Roukala <martin.roukala@mupuf.org >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15386 >
2022-03-16 09:45:42 +00:00
Samuel Pitoiset
737c86da62
radv: only clear VRAM for app and descriptor BOs when set via drirc
...
We don't have to clear other internal BOs when it's set for eg. vkd3d.
This should reduce the number of SDMA clears.
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/15156 >
2022-03-16 07:19:15 +00:00
Samuel Pitoiset
45b909a5a0
radv/winsys: remove old comment about zerovram
...
RADV requires Linux 4.15+.
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/15156 >
2022-03-16 07:19:15 +00:00
Mike Blumenkrantz
acb300a3f0
lavapipe: EXT_image_robustness
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15388 >
2022-03-16 04:58:41 +00:00
Mike Blumenkrantz
6345575f8a
gallivm: fix oob image detection for cube/1dArray/2dArray/cubeArray
...
these all need to check for z coord oob to avoid crashing
cc: mesa-stable
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15388 >
2022-03-16 04:58:41 +00:00
Mike Blumenkrantz
b7fbaf924d
lavapipe: EXT_pipeline_creation_cache_control
...
again, technically passing is still passing
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15379 >
2022-03-16 04:46:06 +00:00
Mike Blumenkrantz
9bce878490
lavapipe: EXT_pipeline_creation_feedback
...
cts passes with mostly quality warnings, but it does pass
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15379 >
2022-03-16 04:46:06 +00:00
Mike Blumenkrantz
dffe8141bd
lavapipe: KHR_zero_initialize_workgroup_memory
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15403 >
2022-03-16 04:05:14 +00:00
Mike Blumenkrantz
e106c1294b
llvmpipe: add handling for zeroing cs shared memory
...
since this is just allocated by the cpu, it needs to be zeroed if the
shader expects that behavior
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15403 >
2022-03-16 04:05:14 +00:00
Mike Blumenkrantz
f72d5a930b
lavapipe: KHR_format_feature_flags2
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15395 >
2022-03-16 02:12:05 +00:00
Mike Blumenkrantz
90e091b072
lavapipe: use VkFormatFeatureFlags2 in format detection
...
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15395 >
2022-03-16 02:12:05 +00:00
Mike Blumenkrantz
65bf1cbc26
gallium: add flag to draw info to indicate converted draws
...
this draw mode in particular requires driver-specific conversions
for queries (e.g., number of vertices), so pass that info through
the only limitation is that it doesn't work for dlists,
but I have yet to see a real use case of a statistics query being used with dlists
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15326 >
2022-03-16 01:45:48 +00:00
Jason Ekstrand
864f3c0ee0
panvk: Fix SSBO buffer offsets
...
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15398 >
2022-03-16 01:27:28 +00:00
Jason Ekstrand
6214cce382
panvk: Require 16B alignment for UBOs
...
This is required by MALI_UNIFORM_BUFFER.
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15398 >
2022-03-16 01:27:28 +00:00
Lionel Landwerlin
a54f5e8e00
anv: silence compiler warnings
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6146
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15387 >
2022-03-16 01:02:05 +00:00
Daniel Stone
2221e3d487
ci: Add new Panfrost G52 skip
...
This started failing for some reason, has been seen in
https://gitlab.freedesktop.org/mesa/mesa/-/jobs/19776551 and others.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Suggested-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15396 >
2022-03-16 00:41:46 +00:00
Stefan Dirsch
c287ed4f39
meson: restore private requires to libdrm in dri.pc file
...
Due to a typo the private requires to libdrm were lost in dri.pc.
Fixed another typo: Infastructure --> Infrastructure
Fixes: 3ae3569d82 ("meson: restore dri.pc file")
Signed-off-by: Stefan Dirsch <sndirsch@suse.com >
Tested-by: Stefan Dirsch <sndirsch@suse.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15375 >
2022-03-15 23:59:46 +00:00
Emma Anholt
3b90d3997a
turnip: use vk_shader_module_to_nir().
...
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15305 >
2022-03-15 23:13:16 +00:00
Jason Ekstrand
5a0e081e00
panvk: Use vk_shader_module_to_nir()
...
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15305 >
2022-03-15 23:13:16 +00:00
Jason Ekstrand
0c871d89ae
panvk: Use vk_shader_module
...
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15305 >
2022-03-15 23:13:16 +00:00
Jason Ekstrand
0b4a80b4c4
anv: Use vk_shader_module_to_nir()
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15305 >
2022-03-15 23:13:16 +00:00
Jason Ekstrand
21b405fbbc
vulkan: Add a vk_shader_module_to_nir() helper
...
This encapsulates all the little bits needed to turn a shader module
into some mostly reasonable NIR. It handles inlining functions,
lowering variable initializers, handling per-member structs and other
trickiness that is needed for consuming the output of spirv_to_nir.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15305 >
2022-03-15 23:13:16 +00:00
Mike Blumenkrantz
40fcd8ef83
lavapipe: enable KHR_memory_model support
...
lavapipe's memory is always coherent, so this is already supported
Reviewed-by: Dave Airlie <airlied@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15377 >
2022-03-15 22:17:43 +00:00