Simplifies detection of SM6+ shaders, e.g. Horizon Zero Dawn and Cyberpunk 2077.
Signed-off-by: Conor McCarthy cmccarthy@codeweavers.com --- 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 b83e2654..c5ba3575 100644 --- a/libs/vkd3d-shader/dxbc.c +++ b/libs/vkd3d-shader/dxbc.c @@ -2024,6 +2024,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 62073cf1..9c022777 100644 --- a/libs/vkd3d-shader/vkd3d_shader_private.h +++ b/libs/vkd3d-shader/vkd3d_shader_private.h @@ -1218,6 +1218,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')