This commit is contained in:
Chip Davis 2019-04-26 13:46:18 -05:00
Родитель 6f091e7c8f
Коммит 01c491648b
4 изменённых файлов: 85 добавлений и 2 удалений

Просмотреть файл

@ -0,0 +1,25 @@
#include <metal_stdlib>
#include <simd/simd.h>
using namespace metal;
struct main0_out
{
float4 o1 [[user(locn1)]];
float4 gl_Position [[position]];
};
struct main0_in
{
float4 v0 [[attribute(0)]];
float4 v1 [[attribute(1)]];
};
vertex main0_out main0(main0_in in [[stage_in]])
{
main0_out out = {};
out.gl_Position = in.v0;
out.o1 = in.v1;
return out;
}

Просмотреть файл

@ -0,0 +1,25 @@
#include <metal_stdlib>
#include <simd/simd.h>
using namespace metal;
struct main0_out
{
float4 o1 [[user(locn1)]];
float4 gl_Position [[position]];
};
struct main0_in
{
float4 v0 [[attribute(0)]];
float4 v1 [[attribute(1)]];
};
vertex main0_out main0(main0_in in [[stage_in]])
{
main0_out out = {};
out.gl_Position = in.v0;
out.o1 = in.v1;
return out;
}

Просмотреть файл

@ -0,0 +1,33 @@
; SPIR-V
; Version: 1.0
; Generator: Wine VKD3D Shader Compiler; 1
; Bound: 13
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %1 "main" %8 %9 %11 %12
OpName %1 "main"
OpName %8 "v0"
OpName %9 "v1"
OpName %11 "o0"
OpName %12 "o1"
OpDecorate %8 Location 0
OpDecorate %9 Location 1
OpDecorate %11 BuiltIn Position
OpDecorate %12 Location 1
%2 = OpTypeVoid
%3 = OpTypeFunction %2
%5 = OpTypeFloat 32
%6 = OpTypeVector %5 4
%7 = OpTypePointer Input %6
%8 = OpVariable %7 Input
%9 = OpVariable %7 Input
%10 = OpTypePointer Output %6
%11 = OpVariable %10 Output
%12 = OpVariable %10 Output
%1 = OpFunction %2 None %3
%4 = OpLabel
OpCopyMemory %11 %8
OpCopyMemory %12 %9
OpReturn
OpFunctionEnd

Просмотреть файл

@ -648,11 +648,11 @@ bool Compiler::InterfaceVariableAccessHandler::handle(Op opcode, const uint32_t
auto *var = compiler.maybe_get<SPIRVariable>(args[0]);
if (var && storage_class_is_interface(var->storage))
variables.insert(variable);
variables.insert(args[0]);
var = compiler.maybe_get<SPIRVariable>(args[1]);
if (var && storage_class_is_interface(var->storage))
variables.insert(variable);
variables.insert(args[1]);
break;
}