[PATCH vkd3d 1/8] vkd3d-shader: Implement VKD3D_SHADER_TARGET_GLSL.
Atharva Nimbalkar
atharvakn at gmail.com
Tue Aug 17 23:19:14 CDT 2021
Signed-off-by: Atharva Nimbalkar <atharvakn at gmail.com>
---
include/vkd3d_shader.h | 4 ++++
libs/vkd3d-shader/vkd3d_shader_main.c | 10 ++++++++++
libs/vkd3d-shader/vkd3d_shader_private.h | 2 ++
programs/vkd3d-compiler/main.c | 3 +++
4 files changed, 19 insertions(+)
diff --git a/include/vkd3d_shader.h b/include/vkd3d_shader.h
index 5092fac..58e507b 100644
--- a/include/vkd3d_shader.h
+++ b/include/vkd3d_shader.h
@@ -491,6 +491,10 @@ enum vkd3d_shader_target_type
* the format used for Direct3D shader model 4 and 5 shaders.
*/
VKD3D_SHADER_TARGET_DXBC_TPF,
+ /**
+ * An 'OpenGL Shading Language' shader.
+ */
+ VKD3D_SHADER_TARGET_GLSL,
VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_TARGET_TYPE),
};
diff --git a/libs/vkd3d-shader/vkd3d_shader_main.c b/libs/vkd3d-shader/vkd3d_shader_main.c
index 78312a1..a9b5d0a 100644
--- a/libs/vkd3d-shader/vkd3d_shader_main.c
+++ b/libs/vkd3d-shader/vkd3d_shader_main.c
@@ -1032,6 +1032,15 @@ static int compile_dxbc_tpf(const struct vkd3d_shader_compile_info *compile_info
return ret;
}
+ if (compile_info->target_type == VKD3D_SHADER_TARGET_GLSL)
+ {
+ vkd3d_shader_error(message_context, NULL, VKD3D_SHADER_ERROR_GLSL_INTERNAL,
+ "Internal compiler error: Unhandled instruction.");
+ vkd3d_shader_parser_destroy(&parser);
+ vkd3d_shader_free_scan_descriptor_info(&scan_descriptor_info);
+ return VKD3D_ERROR;
+ }
+
if (!(spirv_compiler = vkd3d_dxbc_compiler_create(&parser.shader_version,
&parser.shader_desc, compile_info, &scan_descriptor_info, message_context)))
{
@@ -1280,6 +1289,7 @@ const enum vkd3d_shader_target_type *vkd3d_shader_get_supported_target_types(
VKD3D_SHADER_TARGET_SPIRV_TEXT,
#endif
VKD3D_SHADER_TARGET_D3D_ASM,
+ VKD3D_SHADER_TARGET_GLSL,
};
static const enum vkd3d_shader_target_type hlsl_types[] =
diff --git a/libs/vkd3d-shader/vkd3d_shader_private.h b/libs/vkd3d-shader/vkd3d_shader_private.h
index 8550380..b490b9c 100644
--- a/libs/vkd3d-shader/vkd3d_shader_private.h
+++ b/libs/vkd3d-shader/vkd3d_shader_private.h
@@ -115,6 +115,8 @@ enum vkd3d_shader_error
VKD3D_SHADER_ERROR_HLSL_NOT_IMPLEMENTED = 5017,
VKD3D_SHADER_WARNING_HLSL_IMPLICIT_TRUNCATION = 5300,
+
+ VKD3D_SHADER_ERROR_GLSL_INTERNAL = 6000,
};
enum vkd3d_shader_opcode
diff --git a/programs/vkd3d-compiler/main.c b/programs/vkd3d-compiler/main.c
index fb19a70..71f90f8 100644
--- a/programs/vkd3d-compiler/main.c
+++ b/programs/vkd3d-compiler/main.c
@@ -90,6 +90,9 @@ target_type_info[] =
"dxbc-tpf", "A 'Tokenized Program Format' shader embedded in a DXBC container.\n"
" This is the format used for Direct3D shader model 4 and 5 shaders.\n",
true},
+ {VKD3D_SHADER_TARGET_GLSL,
+ "glsl", "An 'OpenGL Shading Language' shader.\n",
+ false}
};
static bool read_shader(struct vkd3d_shader_code *shader, FILE *f)
--
2.32.0
More information about the wine-devel
mailing list