=?UTF-8?Q?J=C3=B3zef=20Kucia=20?=: vkd3d-shader: Implement early depth/ stencil tests.
Alexandre Julliard
julliard at winehq.org
Thu Oct 18 15:02:37 CDT 2018
Module: vkd3d
Branch: master
Commit: 6639f618afd6828625904ef560d1ff1a8dd8decb
URL: https://source.winehq.org/git/vkd3d.git/?a=commit;h=6639f618afd6828625904ef560d1ff1a8dd8decb
Author: Józef Kucia <jkucia at codeweavers.com>
Date: Thu Oct 18 14:59:47 2018 +0200
vkd3d-shader: Implement early depth/stencil tests.
Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
libs/vkd3d-shader/spirv.c | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/libs/vkd3d-shader/spirv.c b/libs/vkd3d-shader/spirv.c
index 2f72c5c..bb70dd5 100644
--- a/libs/vkd3d-shader/spirv.c
+++ b/libs/vkd3d-shader/spirv.c
@@ -3503,10 +3503,18 @@ static void vkd3d_dxbc_compiler_emit_output(struct vkd3d_dxbc_compiler *compiler
static void vkd3d_dxbc_compiler_emit_dcl_global_flags(struct vkd3d_dxbc_compiler *compiler,
const struct vkd3d_shader_instruction *instruction)
{
- if (instruction->flags & ~(VKD3DSGF_REFACTORING_ALLOWED | VKD3DSGF_ENABLE_RAW_AND_STRUCTURED_BUFFERS))
- FIXME("Unhandled global flags %#x.\n", instruction->flags);
+ unsigned int flags = instruction->flags;
+
+ if (flags & VKD3DSGF_FORCE_EARLY_DEPTH_STENCIL)
+ {
+ vkd3d_dxbc_compiler_emit_execution_mode(compiler, SpvExecutionModeEarlyFragmentTests, NULL, 0);
+ flags &= ~VKD3DSGF_FORCE_EARLY_DEPTH_STENCIL;
+ }
+
+ if (flags & ~(VKD3DSGF_REFACTORING_ALLOWED | VKD3DSGF_ENABLE_RAW_AND_STRUCTURED_BUFFERS))
+ FIXME("Unhandled global flags %#x.\n", flags);
else
- WARN("Unhandled global flags %#x.\n", instruction->flags);
+ WARN("Unhandled global flags %#x.\n", flags);
}
static void vkd3d_dxbc_compiler_emit_dcl_temps(struct vkd3d_dxbc_compiler *compiler,
More information about the wine-cvs
mailing list