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,

Reply via email to