Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/KhronosGroup/SPIRV-Cross.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--reference/opt/shaders-msl/masking/write-outputs-block.mask-location-0.for-tess.vert1
-rw-r--r--reference/opt/shaders-msl/masking/write-outputs-block.mask-location-1.for-tess.vert1
-rw-r--r--reference/shaders-msl/masking/write-outputs-block.mask-location-0.for-tess.vert1
-rw-r--r--reference/shaders-msl/masking/write-outputs-block.mask-location-1.for-tess.vert1
-rw-r--r--spirv_msl.cpp2
5 files changed, 5 insertions, 1 deletions
diff --git a/reference/opt/shaders-msl/masking/write-outputs-block.mask-location-0.for-tess.vert b/reference/opt/shaders-msl/masking/write-outputs-block.mask-location-0.for-tess.vert
index 89f96795..f7b1acb5 100644
--- a/reference/opt/shaders-msl/masking/write-outputs-block.mask-location-0.for-tess.vert
+++ b/reference/opt/shaders-msl/masking/write-outputs-block.mask-location-0.for-tess.vert
@@ -21,6 +21,7 @@ struct main0_out
kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], uint3 spvStageInputSize [[grid_size]], device main0_out* spvOut [[buffer(28)]])
{
+ V _22 = {};
device main0_out& out = spvOut[gl_GlobalInvocationID.y * spvStageInputSize.x + gl_GlobalInvocationID.x];
if (any(gl_GlobalInvocationID >= spvStageInputSize))
return;
diff --git a/reference/opt/shaders-msl/masking/write-outputs-block.mask-location-1.for-tess.vert b/reference/opt/shaders-msl/masking/write-outputs-block.mask-location-1.for-tess.vert
index ad36282b..25fd5f50 100644
--- a/reference/opt/shaders-msl/masking/write-outputs-block.mask-location-1.for-tess.vert
+++ b/reference/opt/shaders-msl/masking/write-outputs-block.mask-location-1.for-tess.vert
@@ -21,6 +21,7 @@ struct main0_out
kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], uint3 spvStageInputSize [[grid_size]], device main0_out* spvOut [[buffer(28)]])
{
+ V _22 = {};
device main0_out& out = spvOut[gl_GlobalInvocationID.y * spvStageInputSize.x + gl_GlobalInvocationID.x];
if (any(gl_GlobalInvocationID >= spvStageInputSize))
return;
diff --git a/reference/shaders-msl/masking/write-outputs-block.mask-location-0.for-tess.vert b/reference/shaders-msl/masking/write-outputs-block.mask-location-0.for-tess.vert
index 89f96795..f7b1acb5 100644
--- a/reference/shaders-msl/masking/write-outputs-block.mask-location-0.for-tess.vert
+++ b/reference/shaders-msl/masking/write-outputs-block.mask-location-0.for-tess.vert
@@ -21,6 +21,7 @@ struct main0_out
kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], uint3 spvStageInputSize [[grid_size]], device main0_out* spvOut [[buffer(28)]])
{
+ V _22 = {};
device main0_out& out = spvOut[gl_GlobalInvocationID.y * spvStageInputSize.x + gl_GlobalInvocationID.x];
if (any(gl_GlobalInvocationID >= spvStageInputSize))
return;
diff --git a/reference/shaders-msl/masking/write-outputs-block.mask-location-1.for-tess.vert b/reference/shaders-msl/masking/write-outputs-block.mask-location-1.for-tess.vert
index ad36282b..25fd5f50 100644
--- a/reference/shaders-msl/masking/write-outputs-block.mask-location-1.for-tess.vert
+++ b/reference/shaders-msl/masking/write-outputs-block.mask-location-1.for-tess.vert
@@ -21,6 +21,7 @@ struct main0_out
kernel void main0(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], uint3 spvStageInputSize [[grid_size]], device main0_out* spvOut [[buffer(28)]])
{
+ V _22 = {};
device main0_out& out = spvOut[gl_GlobalInvocationID.y * spvStageInputSize.x + gl_GlobalInvocationID.x];
if (any(gl_GlobalInvocationID >= spvStageInputSize))
return;
diff --git a/spirv_msl.cpp b/spirv_msl.cpp
index 1ffd937d..4b93092d 100644
--- a/spirv_msl.cpp
+++ b/spirv_msl.cpp
@@ -2907,7 +2907,7 @@ void CompilerMSL::add_variable_to_interface_block(StorageClass storage, const st
if (var_type.basetype == SPIRType::Struct)
{
- if (!is_builtin_type(var_type) && (!capture_output_to_buffer || storage == StorageClassInput) &&
+ if (!is_builtin_type(var_type) && (!capture_output_to_buffer || is_block || storage == StorageClassInput) &&
!meta.strip_array)
{
// For I/O blocks or structs, we will need to pass the block itself around