radv/bvh: Do not write pointer flag related data on GFX103
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run

On GFX103, those fields are unused. VK_BUILD_FLAG_PROPAGATE_CULL_FLAGS
is set if the fields are used so it can be used to skip writing them.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37021>
This commit is contained in:
Konstantin Seurer 2025-08-27 09:15:12 +02:00 committed by Marge Bot
parent 8913e8502d
commit 9a93f794cd
2 changed files with 10 additions and 3 deletions

View file

@ -238,7 +238,10 @@ main()
gl_SemanticsAcquireRelease | gl_SemanticsMakeAvailable | gl_SemanticsMakeVisible);
DEREF(dst_node).children = children;
DEREF(dst_node).flags = flags;
if (VK_BUILD_FLAG(VK_BUILD_FLAG_PROPAGATE_CULL_FLAGS))
DEREF(dst_node).flags = flags;
break;
}

View file

@ -17,12 +17,16 @@ radv_encode_triangle_gfx10_3(VOID_REF dst_addr, vk_ir_triangle_node src)
{
REF(radv_bvh_triangle_node) dst = REF(radv_bvh_triangle_node)(dst_addr);
bool opaque = (src.geometry_id_and_flags & VK_GEOMETRY_OPAQUE) != 0;
uint32_t barycentrics_control = 9;
if (VK_BUILD_FLAG(VK_BUILD_FLAG_PROPAGATE_CULL_FLAGS)) {
bool opaque = (src.geometry_id_and_flags & VK_GEOMETRY_OPAQUE) != 0;
barycentrics_control |= (opaque ? 128 : 0);
}
DEREF(dst).coords = src.coords;
DEREF(dst).triangle_id = src.triangle_id;
DEREF(dst).geometry_id_and_flags = src.geometry_id_and_flags;
DEREF(dst).id = 9 | (opaque ? 128 : 0);
DEREF(dst).id = barycentrics_control;
}
void