Samuel Pitoiset
d91c3bde8c
radv: fix and rework shaders upload with GPL
...
For fast-linking, we really want to upload the binaries directly in
a library to avoid creating and uploading at pipeline creation time.
To achieve that, add a radeon_winsys_bo pointer to radv_shader in
order to indicate that a shader is already uploaded. When a lib is
imported, the pipeline slab BO is also incremented to make sure it's
not freed when the lib is destroyed.
This also allows to free binaries right after they are uploaded.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Tatsuyuki Ishi <ishitatsuyuki@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18860 >
2022-10-11 10:06:53 +00:00
Samuel Pitoiset
a63a31a47b
radv: remove NULL checks when binding a graphics pipeline
...
The driver no longer bind NULL graphics pipelines, so these checks
are useless.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18873 >
2022-09-29 14:44:47 +00:00
Samuel Pitoiset
bad75ed3f1
radv: fix emitting RBPLUS state when MRTs are compacted
...
The RBPLUS state needs the non-compacted SPI_SHADER_COL_FORMAT value,
otherwise the state is wrongly emitted if there is holes.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7348
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7319
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7365
Fixes: 8fcb4aa0eb ("radv: compact MRTs to save PS export memory space")
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/18818 >
2022-09-28 11:48:16 +00:00
Daniel Schürmann
40366a3aaf
radv/rt: create separate radv_rt_pipeline struct
...
inherited from radv_compute_pipeline to contain all RT-related information.
This will make it easier to transition to RT shader functions.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18755 >
2022-09-26 13:03:44 +00:00
Mike Blumenkrantz
007c6b1dd2
radv: use direct access to last_vgt_api_stage_locs for sgpr emission
...
radv_lookup_user_sgpr is heavy, stop using it
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18808 >
2022-09-26 11:40:26 +00:00
Mike Blumenkrantz
a54d996463
radv: ALWAYS_INLINE radv_is_streamout_enabled()
...
v2 by Timur Kristóf:
- Use ALWAYS_INLINE instead of just inline.
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18807 >
2022-09-26 10:51:25 +00:00
Mike Blumenkrantz
051594fb7f
radv: ALWAYS_INLINE radv_flush_descriptors
...
B I G P E R F
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18807 >
2022-09-26 10:51:25 +00:00
Mike Blumenkrantz
876f7f60ac
radv: ALWAYS_INLINE radv_after_draw
...
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18807 >
2022-09-26 10:51:25 +00:00
Samuel Pitoiset
7985a9df9a
radv: enable NGG culling unconditionally for GPL but disable it dynamically
...
When compiling the pre-rasterization stages we don't know the primitive
topology, but we still want to enable NGG culling for performance. To
achieve that, NGG culling is enabled unconditionally when the topology
is unknown and disabled dynamically for points or lines.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18776 >
2022-09-26 09:28:14 +02:00
Samuel Pitoiset
45d4ee91e0
radv: constify radv_lookup_user_sgpr()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18677 >
2022-09-21 10:30:33 +00:00
Rhys Perry
7d26fafacf
radv: fix dynamic RT stack size with VGPR spilling
...
VGPR spilling might cause VGPRs to be spilled at scratch offset 0, so we
can't use that.
fossil-db (Sienna Cichlid, Q2RTX and Control):
Totals from 4 (0.26% of 1524) affected shaders:
Instrs: 8734 -> 8737 (+0.03%)
CodeSize: 48492 -> 48504 (+0.02%)
Latency: 384375 -> 384369 (-0.00%)
InvThroughput: 256250 -> 256246 (-0.00%)
Copies: 1312 -> 1313 (+0.08%)
Branches: 256 -> 258 (+0.78%)
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18541 >
2022-09-20 01:39:20 +00:00
Rhys Perry
272d37fa72
radv: shrink zero-initialization in vkCmdSetVertexInputEXT
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18465 >
2022-09-16 13:19:55 +00:00
Samuel Pitoiset
299d294304
Revert "radv: upload the PS epilog in the existing pipeline BO"
...
This is completely broken because the PS epilog has refcount and
radv_upload_shaders() updates its VA.
This reverts commit 7c34b31db2 .
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/18632 >
2022-09-16 11:38:28 +00:00
Samuel Pitoiset
c199a5160a
radv: bind the VS input state for prologs created with GPL
...
If we have a VS that needs a prolog without using the dynamic state,
that means that it comes from a library, so we can overwrite the
cmdbuf VS input state.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18519 >
2022-09-16 08:22:16 +00:00
Samuel Pitoiset
731116da1a
radv: stop checking for NULL pipelines in radv_CmdBindPipeline()
...
This should never happen now.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18567 >
2022-09-14 19:13:43 +00:00
Samuel Pitoiset
eef1511437
radv: implement dynamic patch control points
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18344 >
2022-09-13 08:24:14 +00:00
Samuel Pitoiset
76960e2d93
radv: move emitting GE_CNTL for non-NGG pipelines from the cmdbuf
...
GE_CNTL is the equivalent of IA_MULTI_VGT_PARAM on GFX9 and older.
Calling this function for every draw shouldn't really hurt in practice
because only non-NGG pipelines need this.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18344 >
2022-09-13 08:24:14 +00:00
Samuel Pitoiset
0bf822144f
radv: move emitting PRIMGROUP_SIZE for <= GFX9 from the cmdbuf
...
The number of tessellation patches that is computed from the number
of patch control points might change dynamically too.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18344 >
2022-09-13 08:24:14 +00:00
Samuel Pitoiset
556b297977
radv: pass the number of patch control points to si_get_ia_multi_vgt_param()
...
To prepare for dynamic patch control points.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18344 >
2022-09-13 08:24:14 +00:00
Samuel Pitoiset
7c34b31db2
radv: upload the PS epilog in the existing pipeline BO
...
This reduces the number of BOs needed.
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/18363 >
2022-09-13 07:03:14 +00:00
Samuel Pitoiset
c59d15c80c
radv: store the VS prologs/PS epilogs VA at upload time
...
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/18363 >
2022-09-13 07:03:14 +00:00
Timur Kristóf
3335f9b19f
radv: Replace NV_mesh_shader macros with EXT.
...
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18521 >
2022-09-12 22:59:56 +00:00
Jason Ekstrand
441598eca6
radv: Switch to dynamic rendering only
...
Also, update list of expected failures.
dEQP-VK.image.sample_texture.*_bit_compressed_format_two_samplers_*
now reliably pass on Polaris10 (GFX8) and Pitcairn (GFX6).
Stoney has new failures but given there is already a lot of
depth/stencil resolve failures, we shouldn't worry about them.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15587 >
2022-09-09 09:24:59 +00:00
Jason Ekstrand
0461d59098
radv: Only copy the render area from VRS to HTILE
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15587 >
2022-09-09 09:24:59 +00:00
Jason Ekstrand
c7d0d328d5
radv: Set the window scissor to the render area, not framebuffer
...
With dynamic rendering, the concept of framebuffer dimensions goes away
so this won't make sense. Even with render passes, the render area is
guaranteed to be inside the framebuffer so we may as well clip to the
potentially smaller render area. This commit also moves window scissor
setup to CmdBeginRenderPass2() time. This should be fine, even for meta
ops, as the only meta ops which happen inside a render pass need the
same render area as the render pass itself.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15587 >
2022-09-09 09:24:59 +00:00
Samuel Pitoiset
dcff89994c
radv: add support for emitting and prefetching PS epilogs
...
Long jumps seem to be slow and prefetching might help.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18255 >
2022-09-09 06:26:27 +00:00
Timur Kristóf
be56649fc6
radv: Implement EXT_mesh_shader draw calls.
...
There is a new packet DISPATCH_MESH_INDIRECT_MULTI which we use
for indirect mesh shader only draws. This packet allows using
a 3D dispatch (however firstTask doesn't work with this packet).
Otherwise everything else works the same way as
the NV_mesh_shader draw calls.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18367 >
2022-09-05 13:09:29 +00:00
Jason Ekstrand
aea0b6292c
radv: Move to the common command pool framework
...
Now the common code support reuse, port radv over to using it.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18324 >
2022-09-01 20:17:25 +00:00
Jason Ekstrand
44ab076fea
vulkan: Add a vk_command_buffer_ops struct
...
This is the standard pattern in the kernel for providing vfunc tables
for C objects. We're using it in the pipeline cache code but we're
about to start adding more stuff and so it really helps if we have it
for command buffers as well.
Reviewed-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18324 >
2022-09-01 20:17:25 +00:00
Jason Ekstrand
5c143b132a
vulkan: Re-order arguments to vk_command_buffer_init
...
Most other init functions follow the Vulkan API convention of putting
the parent object first.
Reviewed-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18324 >
2022-09-01 20:17:25 +00:00
Jason Ekstrand
f90e2af996
vulkan: Re-order arguments to vk_command_pool_init
...
Most other init functions follow the Vulkan API convention of putting
the parent object first.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18324 >
2022-09-01 20:17:25 +00:00
Dave Airlie
b644c7ca9f
radv: move to using common record_result.
...
v2 (Jason Ekstrand):
- Handle rename to vk_command_buffer_set_error
- Add more instances, especially in device generated commands
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16918 >
2022-09-01 14:11:55 +00:00
Samuel Pitoiset
4406905600
radv: allow null descriptor set layouts in pipeline layouts
...
This is allowed by the Vulkan spec when GPL is used.
Fixes dEQP-VK.pipeline.pipeline_library.graphics_library.misc.other.null_descriptor_set_in_monolithic_pipeline
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18313 >
2022-08-31 06:13:14 +00:00
Rhys Perry
831257bdce
radv,aco: use pipe_format for dynamic vertex input state
...
Also prepare for 64-bit and R8G8B8/R16G16B16 with the addition of
radv_vs_input_state::nontrivial_formats.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5021
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17894 >
2022-08-30 19:02:11 +00:00
Rhys Perry
6a2ada93b4
ac: add ac_vtx_format_info
...
This will be used by RADV and ACO.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17894 >
2022-08-30 19:02:11 +00:00
Samuel Pitoiset
40d8df7280
radv: emit the guardband state separately from the scissor state
...
Only re-emit the scissor state if viewports or scissors change, and
only re-emit the guardband state if viewports, line width or the
current rasterized primitive change.
This should reduce the number of emitted packets when only the line
width or the rasterized primitive change.
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/18247 >
2022-08-29 19:40:36 +00:00
Samuel Pitoiset
3c2966fa1b
radv: rework dirtying scissors when the line width changes
...
The guardband state (part of scissors) needs to be re-emitted when
the line width changes. Given this is a dynamic state, it's not
necessary to look at the pipeline line width.
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/18247 >
2022-08-29 19:40:36 +00:00
Samuel Pitoiset
5bbb7de514
radv: split emitting guardband into a separate helper
...
This will be used to emit guardband separately from scissor.
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/18247 >
2022-08-29 19:40:36 +00:00
Samuel Pitoiset
fbbae5c0b9
radv: remove useless parameter in si_write_scissors()
...
It always starts from 0.
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/18247 >
2022-08-29 19:40:36 +00:00
Samuel Pitoiset
d88aba8946
radv: make sure to emit BREAK_BATCH when color write enable is dynamic
...
Color write enable can change CB_TARGET_MASK and emitting a BREAK_BATCH
seems needed for binning. Though, this was broken if this enable bit
changed dynamically for the same pipeline. Split the function to not
increase CPU overhead.
Found by inspection.
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/18233 >
2022-08-29 19:21:12 +00:00
Samuel Pitoiset
3bcfdfb06e
radv: store binning settings into the physical device
...
To avoid re-computing this every time.
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/18233 >
2022-08-29 19:21:12 +00:00
Samuel Pitoiset
03d2af30f6
radv: remove dead code about task ring when binding a compute pipeline
...
This is probably a leftover when task shader has been reworked, but it
has no effect.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18210 >
2022-08-26 14:07:09 +00:00
Samuel Pitoiset
64045fcf7c
radv: re-emit viewports if negative one to one or depth clamp mode changed
...
The following sequence would be broken if we don't re-emit viewports.
vkCmdSetViewport()
VkCmdBindPipeline(negative_one_to_one = false)
vkCmdDraw()
VkCmdBindPipeline(negative_one_to_one = true)
vkCmdDraw()
Found by inspection.
Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18245 >
2022-08-26 12:46:41 +00:00
Samuel Pitoiset
68e69d002f
radv: stop emitting RMW context registers for updating sample locations
...
RMW context registers have been removed in RadeonSI a while ago
because they don't seem good for performance.
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/18234 >
2022-08-26 06:33:05 +00:00
Samuel Pitoiset
2f5891108a
radv: cleanup dynamic states in radv_emit_graphics_pipeline()
...
Some dynamic states always need to be emitted when the first pipeline
is emitted, some others depend on pipeline state.
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/18234 >
2022-08-26 06:33:05 +00:00
Samuel Pitoiset
85a55009be
radv: stop clearing bitfields for registers that are emitted dynamically
...
These fields aren't set at pipeline creation, so clearing them is
just useless.
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/18234 >
2022-08-26 06:33:05 +00:00
Jason Ekstrand
cc2cdf88fb
radv: Don't assume layout == stencilLayout for stencil-only
...
This assumption is probably valid with render passes but it won't for
dynamic rendering where we may not have a layout for depth at all.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18084 >
2022-08-23 16:41:56 +00:00
Jason Ekstrand
b772e30ce7
radv: Add a image_transition helper for separate depth/stencil layouts
...
This just reduces churn a bit when we switch to dynamic rendering.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18084 >
2022-08-23 16:41:56 +00:00
Jason Ekstrand
804ce28444
radv: Drop set/restore_subpass
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18084 >
2022-08-23 16:41:56 +00:00
Jason Ekstrand
4e52efcc43
radv: Use VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT for render loops
...
This commit fixes
dEQP-VK.rasterization.rasterization_order_attachment_access.format on
GFX9 because changing the layout for Vulkan feedback loops will trigger
a fast-clear eliminate. Though, the root cause is unrelated to that and
it's because the CMASK/FMASK initialization on GFX9 is currently broken
for TC-compatible images (there is a TODO somewhere).
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18084 >
2022-08-23 16:41:56 +00:00