=?UTF-8?Q?J=C3=B3zef=20Kucia=20?=: vkd3d-shader: Translate vPrim register.

Alexandre Julliard julliard at winehq.org
Fri Feb 22 15:20:00 CST 2019


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

Author: Józef Kucia <jkucia at codeweavers.com>
Date:   Thu Feb 21 12:32:48 2019 +0100

vkd3d-shader: Translate vPrim register.

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 | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/libs/vkd3d-shader/spirv.c b/libs/vkd3d-shader/spirv.c
index 6ef04a4..2c58a47 100644
--- a/libs/vkd3d-shader/spirv.c
+++ b/libs/vkd3d-shader/spirv.c
@@ -2358,6 +2358,9 @@ static bool vkd3d_dxbc_compiler_get_register_name(char *buffer, unsigned int buf
         case VKD3DSPR_DEPTHOUTLE:
             snprintf(buffer, buffer_size, "oDepth");
             break;
+        case VKD3DSPR_PRIMID:
+            snprintf(buffer, buffer_size, "vPrim");
+            break;
         case VKD3DSPR_FORKINSTID:
             snprintf(buffer, buffer_size, "vForkInstanceId");
             break;
@@ -3084,6 +3087,10 @@ static void vkd3d_dxbc_compiler_decorate_builtin(struct vkd3d_dxbc_compiler *com
 
     switch (builtin)
     {
+        case SpvBuiltInPrimitiveId:
+            if (compiler->shader_type == VKD3D_SHADER_TYPE_PIXEL)
+                vkd3d_spirv_enable_capability(builder, SpvCapabilityGeometry);
+            break;
         case SpvBuiltInFragDepth:
             vkd3d_dxbc_compiler_emit_execution_mode(compiler, SpvExecutionModeDepthReplacing, NULL, 0);
             break;
@@ -3204,6 +3211,8 @@ vkd3d_system_value_builtins[] =
     {VKD3D_SIV_VERTEX_ID,   {VKD3D_TYPE_INT,   1, SpvBuiltInVertexIndex, sv_vertex_id_fixup}},
     {VKD3D_SIV_INSTANCE_ID, {VKD3D_TYPE_INT,   1, SpvBuiltInInstanceIndex, sv_instance_id_fixup}},
 
+    {VKD3D_SIV_PRIMITIVE_ID, {VKD3D_TYPE_INT, 1, SpvBuiltInPrimitiveId}},
+
     {VKD3D_SIV_RENDER_TARGET_ARRAY_INDEX, {VKD3D_TYPE_INT, 1, SpvBuiltInLayer}},
     {VKD3D_SIV_VIEWPORT_ARRAY_INDEX,      {VKD3D_TYPE_INT, 1, SpvBuiltInViewportIndex}},
 
@@ -3248,6 +3257,8 @@ vkd3d_register_builtins[] =
     {VKD3DSPR_GSINSTID,         {VKD3D_TYPE_INT, 1, SpvBuiltInInvocationId}},
     {VKD3DSPR_OUTPOINTID,       {VKD3D_TYPE_INT, 1, SpvBuiltInInvocationId}},
 
+    {VKD3DSPR_PRIMID,           {VKD3D_TYPE_INT, 1, SpvBuiltInPrimitiveId}},
+
     {VKD3DSPR_TESSCOORD,        {VKD3D_TYPE_FLOAT, 3, SpvBuiltInTessCoord}},
 
     {VKD3DSPR_COVERAGE,         {VKD3D_TYPE_UINT, 1, SpvBuiltInSampleMask, NULL, 1}},




More information about the wine-cvs mailing list