Module: Mesa Branch: main Commit: dc857e5c9e45ad22614a5c2a64a800ad37770a20 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=dc857e5c9e45ad22614a5c2a64a800ad37770a20
Author: Samuel Pitoiset <samuel.pitoi...@gmail.com> Date: Wed Jan 10 12:03:27 2024 +0100 radv: initialize radv_device::disable_trunc_coord earlier The per-device cache key will need to be initialized before compiling any meta shaders, so this needs to be done earlier. Signed-off-by: Samuel Pitoiset <samuel.pitoi...@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26948> --- src/amd/vulkan/radv_device.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c index a7faa0bb8c6..f7d9634743c 100644 --- a/src/amd/vulkan/radv_device.c +++ b/src/amd/vulkan/radv_device.c @@ -970,6 +970,17 @@ radv_CreateDevice(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo *pCr device->mesh_fast_launch_2 = (device->instance->perftest_flags & RADV_PERFTEST_GS_FAST_LAUNCH_2) && device->physical_device->rad_info.gfx_level >= GFX11; + device->disable_trunc_coord = device->instance->drirc.disable_trunc_coord; + + if (device->instance->vk.app_info.engine_name && !strcmp(device->instance->vk.app_info.engine_name, "DXVK")) { + /* For DXVK 2.3.0 and older, use dualSrcBlend to determine if this is D3D9. */ + bool is_d3d9 = !dual_src_blend; + if (device->instance->vk.app_info.engine_version > VK_MAKE_VERSION(2, 3, 0)) + is_d3d9 = device->instance->vk.app_info.app_version & 0x1; + + device->disable_trunc_coord &= !is_d3d9; + } + /* The maximum number of scratch waves. Scratch space isn't divided * evenly between CUs. The number is only a function of the number of CUs. * We can decrease the constant to decrease the scratch buffer size. @@ -1162,17 +1173,6 @@ radv_CreateDevice(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo *pCr fprintf(stderr, "radv: Forcing anisotropy filter to %ix\n", 1 << util_logbase2(device->force_aniso)); } - device->disable_trunc_coord = device->instance->drirc.disable_trunc_coord; - - if (device->instance->vk.app_info.engine_name && !strcmp(device->instance->vk.app_info.engine_name, "DXVK")) { - /* For DXVK 2.3.0 and older, use dualSrcBlend to determine if this is D3D9. */ - bool is_d3d9 = !dual_src_blend; - if (device->instance->vk.app_info.engine_version > VK_MAKE_VERSION(2, 3, 0)) - is_d3d9 = device->instance->vk.app_info.app_version & 0x1; - - device->disable_trunc_coord &= !is_d3d9; - } - if (use_perf_counters) { size_t bo_size = PERF_CTR_BO_PASS_OFFSET + sizeof(uint64_t) * PERF_CTR_MAX_PASSES; result = device->ws->buffer_create(device->ws, bo_size, 4096, RADEON_DOMAIN_GTT,