Conor McCarthy : vkd3d-shader/dxbc: Emit a fixme when a DXIL shader chunk is found.

Alexandre Julliard julliard at winehq.org
Mon Jan 10 15:57:17 CST 2022


Module: vkd3d
Branch: master
Commit: eb1ae29de0a5a7c319c2123396c31871a27cc0fe
URL:    https://source.winehq.org/git/vkd3d.git/?a=commit;h=eb1ae29de0a5a7c319c2123396c31871a27cc0fe

Author: Conor McCarthy <cmccarthy at codeweavers.com>
Date:   Mon Jan 10 15:14:37 2022 +1000

vkd3d-shader/dxbc: Emit a fixme when a DXIL shader chunk is found.

Simplifies detection of SM6+ shaders, e.g. Horizon Zero Dawn and
Cyberpunk 2077.

Signed-off-by: Conor McCarthy <cmccarthy at codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 libs/vkd3d-shader/dxbc.c                 | 4 ++++
 libs/vkd3d-shader/vkd3d_shader_private.h | 1 +
 2 files changed, 5 insertions(+)

diff --git a/libs/vkd3d-shader/dxbc.c b/libs/vkd3d-shader/dxbc.c
index 0b76a4a..d26ed54 100644
--- a/libs/vkd3d-shader/dxbc.c
+++ b/libs/vkd3d-shader/dxbc.c
@@ -1988,6 +1988,10 @@ static int shdr_handler(const char *data, DWORD data_size, DWORD tag, void *cont
             TRACE("Skipping AON9 shader code chunk.\n");
             break;
 
+        case TAG_DXIL:
+            FIXME("Skipping DXIL shader model 6+ code chunk.\n");
+            break;
+
         default:
             TRACE("Skipping chunk %#x.\n", tag);
             break;
diff --git a/libs/vkd3d-shader/vkd3d_shader_private.h b/libs/vkd3d-shader/vkd3d_shader_private.h
index ffea91d..6f0c57c 100644
--- a/libs/vkd3d-shader/vkd3d_shader_private.h
+++ b/libs/vkd3d-shader/vkd3d_shader_private.h
@@ -1216,6 +1216,7 @@ static inline void *vkd3d_find_struct_(const struct vkd3d_struct *chain,
     ((DWORD)(ch2) << 16) | ((DWORD)(ch3) << 24 ))
 #define TAG_AON9 MAKE_TAG('A', 'o', 'n', '9')
 #define TAG_DXBC MAKE_TAG('D', 'X', 'B', 'C')
+#define TAG_DXIL MAKE_TAG('D', 'X', 'I', 'L')
 #define TAG_ISG1 MAKE_TAG('I', 'S', 'G', '1')
 #define TAG_ISGN MAKE_TAG('I', 'S', 'G', 'N')
 #define TAG_OSG1 MAKE_TAG('O', 'S', 'G', '1')




More information about the wine-cvs mailing list