[Mesa-dev] [PATCH] radv: Really use correct HTILE expanded words.
Bas Nieuwenhuizen
bas at basnieuwenhuizen.nl
Sat Feb 24 01:21:30 UTC 2018
On Fri, Feb 23, 2018 at 11:52 AM, James Legg <jlegg at feralinteractive.com> wrote:
> On Thu, 2018-02-22 at 22:48 +0100, Bas Nieuwenhuizen wrote:
>> since IIRC the last change was also done due to Feral noticing and we
>> are clearly lacking testcases in this area, can you check that that
>> case still works for you? Thanks a lot!
>
> I looked at an issue that was fixed with 5158603182fe7435 (and still
> occurs if I change the clear word back to 0xffffffff) and I can confirm
> this patch does not reintroduce it.
Nice, I fixed the Fixes tag and pushed it. Thanks a lot!
>
>> On Thu, Feb 22, 2018 at 5:57 PM, James Legg <jlegg at feralinteractive.com> wrote:
>> > When transitioning to an htile compressed depth format, Set the full
>> > depth range, so later rasterization can pass HiZ. Previously, for depth
>> > only formats, the depth range was set to 0 to 0. This caused unwanted
>> > HiZ rejections with a VK_FORMAT_D16_UNORM depth buffer
>> > (VK_FORMAT_D32_SFLOAT was not affected somehow).
>> >
>> > These values are derived from PAL [0], since I can't find the
>> > specification describing the htile values.
>> >
>> > Fixes 5158603182fe7435: radv: Use correct HTILE expanded words.
>> >
>> > [0] https://github.com/GPUOpen-Drivers/pal/blob/5cba4ecbda9452773f59692f5915301e7db4a183/src/core/hw/gfxip/gfx9/gfx9MaskRam.cpp#L1500
>> >
>> > CC: Dave Airlie <airlied at redhat.com>
>> > CC: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
>> > Cc: mesa-stable at lists.freedesktop.org
>> > ---
>> > src/amd/vulkan/radv_cmd_buffer.c | 6 +++---
>> > 1 file changed, 3 insertions(+), 3 deletions(-)
>> >
>> > diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c
>> > index 8a384b114c..2b41baea3d 100644
>> > --- a/src/amd/vulkan/radv_cmd_buffer.c
>> > +++ b/src/amd/vulkan/radv_cmd_buffer.c
>> > @@ -3440,8 +3440,8 @@ void radv_CmdEndRenderPass(
>> >
>> > /*
>> > * For HTILE we have the following interesting clear words:
>> > - * 0x0000030f: Uncompressed for depth+stencil HTILE.
>> > - * 0x0000000f: Uncompressed for depth only HTILE.
>> > + * 0xfffff30f: Uncompressed, full depth range, for depth+stencil HTILE
>> > + * 0xfffc000f: Uncompressed, full depth range, for depth only HTILE.
>> > * 0xfffffff0: Clear depth to 1.0
>> > * 0x00000000: Clear depth to 0.0
>> > */
>> > @@ -3489,7 +3489,7 @@ static void radv_handle_depth_image_transition(struct radv_cmd_buffer *cmd_buffe
>> > radv_initialize_htile(cmd_buffer, image, range, 0);
>> > } else if (!radv_layout_is_htile_compressed(image, src_layout, src_queue_mask) &&
>> > radv_layout_is_htile_compressed(image, dst_layout, dst_queue_mask)) {
>> > - uint32_t clear_value = vk_format_is_stencil(image->vk_format) ? 0x30f : 0xf;
>> > + uint32_t clear_value = vk_format_is_stencil(image->vk_format) ? 0xfffff30f : 0xfffc000f;
>> > radv_initialize_htile(cmd_buffer, image, range, clear_value);
>> > } else if (radv_layout_is_htile_compressed(image, src_layout, src_queue_mask) &&
>> > !radv_layout_is_htile_compressed(image, dst_layout, dst_queue_mask)) {
>> > --
>> > 2.14.3
>> >
More information about the mesa-dev
mailing list