Merge branch 'master' into master
This commit is contained in:
commit
4183a6489b
@ -3488,6 +3488,7 @@
|
||||
BITCODE_GENERATION_MODE = bitcode;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
|
||||
GCC_PREPROCESSOR_DEFINITIONS = "SPIRV_CROSS_NAMESPACE_OVERRIDE=MVK_spirv_cross";
|
||||
PRODUCT_NAME = SPIRVCross;
|
||||
SDKROOT = iphoneos;
|
||||
VALID_ARCHS = arm64;
|
||||
@ -3501,6 +3502,7 @@
|
||||
BITCODE_GENERATION_MODE = bitcode;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
|
||||
GCC_PREPROCESSOR_DEFINITIONS = "SPIRV_CROSS_NAMESPACE_OVERRIDE=MVK_spirv_cross";
|
||||
PRODUCT_NAME = SPIRVCross;
|
||||
SDKROOT = iphoneos;
|
||||
VALID_ARCHS = arm64;
|
||||
@ -3510,6 +3512,7 @@
|
||||
A90FD9E221CC4EB900B92BB2 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_PREPROCESSOR_DEFINITIONS = "SPIRV_CROSS_NAMESPACE_OVERRIDE=MVK_spirv_cross";
|
||||
PRODUCT_NAME = SPIRVCross;
|
||||
SDKROOT = macosx;
|
||||
};
|
||||
@ -3518,6 +3521,7 @@
|
||||
A90FD9E321CC4EB900B92BB2 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_PREPROCESSOR_DEFINITIONS = "SPIRV_CROSS_NAMESPACE_OVERRIDE=MVK_spirv_cross";
|
||||
PRODUCT_NAME = SPIRVCross;
|
||||
SDKROOT = macosx;
|
||||
};
|
||||
|
@ -1 +1 @@
|
||||
18d4f67a8760e7cd69508d0a03ff19aad216d0b5
|
||||
5c239b857b1a6504384710e175ce5c1d3d206649
|
||||
|
@ -1054,6 +1054,7 @@
|
||||
buildSettings = {
|
||||
ARCHS = arm64;
|
||||
BITCODE_GENERATION_MODE = bitcode;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = "SPIRV_CROSS_NAMESPACE_OVERRIDE=MVK_spirv_cross";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||
SDKROOT = iphoneos;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
@ -1066,6 +1067,7 @@
|
||||
buildSettings = {
|
||||
ARCHS = arm64;
|
||||
BITCODE_GENERATION_MODE = bitcode;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = "SPIRV_CROSS_NAMESPACE_OVERRIDE=MVK_spirv_cross";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||
SDKROOT = iphoneos;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
@ -1076,6 +1078,7 @@
|
||||
A9CBEDFF1B6299D800E45FDC /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_PREPROCESSOR_DEFINITIONS = "SPIRV_CROSS_NAMESPACE_OVERRIDE=MVK_spirv_cross";
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.11;
|
||||
SDKROOT = macosx;
|
||||
VALID_ARCHS = x86_64;
|
||||
@ -1085,6 +1088,7 @@
|
||||
A9CBEE001B6299D800E45FDC /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_PREPROCESSOR_DEFINITIONS = "SPIRV_CROSS_NAMESPACE_OVERRIDE=MVK_spirv_cross";
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.11;
|
||||
SDKROOT = macosx;
|
||||
VALID_ARCHS = x86_64;
|
||||
|
@ -1092,8 +1092,10 @@ void MVKCmdFillBuffer::setContent(VkBuffer dstBuffer,
|
||||
void MVKCmdFillBuffer::encode(MVKCommandEncoder* cmdEncoder) {
|
||||
id<MTLBuffer> dstMTLBuff = _dstBuffer->getMTLBuffer();
|
||||
VkDeviceSize dstMTLBuffOffset = _dstBuffer->getMTLBufferOffset();
|
||||
VkDeviceSize byteCnt = (_size == VK_WHOLE_SIZE) ? (_dstBuffer->getByteCount() - (dstMTLBuffOffset + _dstOffset)) : _size;
|
||||
VkDeviceSize wordCnt = byteCnt >> 2;
|
||||
VkDeviceSize byteCnt = (_size == VK_WHOLE_SIZE) ? (_dstBuffer->getByteCount() - _dstOffset) : _size;
|
||||
|
||||
// Round up in case of VK_WHOLE_SIZE on a buffer size which is not aligned to 4 bytes.
|
||||
VkDeviceSize wordCnt = (byteCnt + 3) >> 2;
|
||||
|
||||
MVKAssert(mvkFits<uint32_t>(wordCnt),
|
||||
"Buffer fill size must fit into a 32-bit unsigned integer.");
|
||||
|
@ -56,6 +56,9 @@ public:
|
||||
MVKCommandEncoder* cmdEncoder,
|
||||
MVKCommandUse cmdUse);
|
||||
|
||||
/** Returns the intended usage of this buffer. */
|
||||
VkBufferUsageFlags getUsage() const { return _usage; }
|
||||
|
||||
|
||||
#pragma mark Metal
|
||||
|
||||
@ -78,6 +81,8 @@ protected:
|
||||
bool needsHostReadSync(VkPipelineStageFlags srcStageMask,
|
||||
VkPipelineStageFlags dstStageMask,
|
||||
VkBufferMemoryBarrier* pBufferMemoryBarrier);
|
||||
|
||||
VkBufferUsageFlags _usage;
|
||||
};
|
||||
|
||||
|
||||
|
@ -116,7 +116,7 @@ bool MVKBuffer::needsHostReadSync(VkPipelineStageFlags srcStageMask,
|
||||
|
||||
#pragma mark Construction
|
||||
|
||||
MVKBuffer::MVKBuffer(MVKDevice* device, const VkBufferCreateInfo* pCreateInfo) : MVKResource(device) {
|
||||
MVKBuffer::MVKBuffer(MVKDevice* device, const VkBufferCreateInfo* pCreateInfo) : MVKResource(device), _usage(pCreateInfo->usage) {
|
||||
_byteAlignment = _device->_pMetalFeatures->mtlBufferAlignment;
|
||||
_byteCount = pCreateInfo->size;
|
||||
}
|
||||
@ -142,6 +142,12 @@ id<MTLTexture> MVKBufferView::getMTLTexture() {
|
||||
width: _textureSize.width
|
||||
height: _textureSize.height
|
||||
mipmapped: NO];
|
||||
mtlTexDesc.storageMode = _buffer->getMTLBuffer().storageMode;
|
||||
mtlTexDesc.cpuCacheMode = _buffer->getMTLBuffer().cpuCacheMode;
|
||||
mtlTexDesc.usage = MTLTextureUsageShaderRead;
|
||||
if ( mvkIsAnyFlagEnabled(_buffer->getUsage(), VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT) ) {
|
||||
mtlTexDesc.usage |= MTLTextureUsageShaderWrite;
|
||||
}
|
||||
_mtlTexture = [_buffer->getMTLBuffer() newTextureWithDescriptor: mtlTexDesc
|
||||
offset: _mtlBufferOffset
|
||||
bytesPerRow: _mtlBytesPerRow];
|
||||
|
@ -456,16 +456,16 @@ static uint32_t sizeOfOutput(const SPIRVShaderOutput& output) {
|
||||
// Round up to 4 elements for 3-vectors, since that reflects how Metal lays them out.
|
||||
if (vecWidth == 3) { vecWidth = 4; }
|
||||
switch (output.baseType) {
|
||||
case spirv_cross::SPIRType::SByte:
|
||||
case spirv_cross::SPIRType::UByte:
|
||||
case SPIRV_CROSS_NAMESPACE::SPIRType::SByte:
|
||||
case SPIRV_CROSS_NAMESPACE::SPIRType::UByte:
|
||||
return 1 * vecWidth;
|
||||
case spirv_cross::SPIRType::Short:
|
||||
case spirv_cross::SPIRType::UShort:
|
||||
case spirv_cross::SPIRType::Half:
|
||||
case SPIRV_CROSS_NAMESPACE::SPIRType::Short:
|
||||
case SPIRV_CROSS_NAMESPACE::SPIRType::UShort:
|
||||
case SPIRV_CROSS_NAMESPACE::SPIRType::Half:
|
||||
return 2 * vecWidth;
|
||||
case spirv_cross::SPIRType::Int:
|
||||
case spirv_cross::SPIRType::UInt:
|
||||
case spirv_cross::SPIRType::Float:
|
||||
case SPIRV_CROSS_NAMESPACE::SPIRType::Int:
|
||||
case SPIRV_CROSS_NAMESPACE::SPIRType::UInt:
|
||||
case SPIRV_CROSS_NAMESPACE::SPIRType::Float:
|
||||
default:
|
||||
return 4 * vecWidth;
|
||||
}
|
||||
@ -473,7 +473,7 @@ static uint32_t sizeOfOutput(const SPIRVShaderOutput& output) {
|
||||
|
||||
static VkFormat mvkFormatFromOutput(const SPIRVShaderOutput& output) {
|
||||
switch (output.baseType) {
|
||||
case spirv_cross::SPIRType::SByte:
|
||||
case SPIRV_CROSS_NAMESPACE::SPIRType::SByte:
|
||||
switch (output.vecWidth) {
|
||||
case 1: return VK_FORMAT_R8_SINT;
|
||||
case 2: return VK_FORMAT_R8G8_SINT;
|
||||
@ -481,7 +481,7 @@ static VkFormat mvkFormatFromOutput(const SPIRVShaderOutput& output) {
|
||||
case 4: return VK_FORMAT_R8G8B8A8_SINT;
|
||||
}
|
||||
break;
|
||||
case spirv_cross::SPIRType::UByte:
|
||||
case SPIRV_CROSS_NAMESPACE::SPIRType::UByte:
|
||||
switch (output.vecWidth) {
|
||||
case 1: return VK_FORMAT_R8_UINT;
|
||||
case 2: return VK_FORMAT_R8G8_UINT;
|
||||
@ -489,7 +489,7 @@ static VkFormat mvkFormatFromOutput(const SPIRVShaderOutput& output) {
|
||||
case 4: return VK_FORMAT_R8G8B8A8_UINT;
|
||||
}
|
||||
break;
|
||||
case spirv_cross::SPIRType::Short:
|
||||
case SPIRV_CROSS_NAMESPACE::SPIRType::Short:
|
||||
switch (output.vecWidth) {
|
||||
case 1: return VK_FORMAT_R16_SINT;
|
||||
case 2: return VK_FORMAT_R16G16_SINT;
|
||||
@ -497,7 +497,7 @@ static VkFormat mvkFormatFromOutput(const SPIRVShaderOutput& output) {
|
||||
case 4: return VK_FORMAT_R16G16B16A16_SINT;
|
||||
}
|
||||
break;
|
||||
case spirv_cross::SPIRType::UShort:
|
||||
case SPIRV_CROSS_NAMESPACE::SPIRType::UShort:
|
||||
switch (output.vecWidth) {
|
||||
case 1: return VK_FORMAT_R16_UINT;
|
||||
case 2: return VK_FORMAT_R16G16_UINT;
|
||||
@ -505,7 +505,7 @@ static VkFormat mvkFormatFromOutput(const SPIRVShaderOutput& output) {
|
||||
case 4: return VK_FORMAT_R16G16B16A16_UINT;
|
||||
}
|
||||
break;
|
||||
case spirv_cross::SPIRType::Half:
|
||||
case SPIRV_CROSS_NAMESPACE::SPIRType::Half:
|
||||
switch (output.vecWidth) {
|
||||
case 1: return VK_FORMAT_R16_SFLOAT;
|
||||
case 2: return VK_FORMAT_R16G16_SFLOAT;
|
||||
@ -513,7 +513,7 @@ static VkFormat mvkFormatFromOutput(const SPIRVShaderOutput& output) {
|
||||
case 4: return VK_FORMAT_R16G16B16A16_SFLOAT;
|
||||
}
|
||||
break;
|
||||
case spirv_cross::SPIRType::Int:
|
||||
case SPIRV_CROSS_NAMESPACE::SPIRType::Int:
|
||||
switch (output.vecWidth) {
|
||||
case 1: return VK_FORMAT_R32_SINT;
|
||||
case 2: return VK_FORMAT_R32G32_SINT;
|
||||
@ -521,7 +521,7 @@ static VkFormat mvkFormatFromOutput(const SPIRVShaderOutput& output) {
|
||||
case 4: return VK_FORMAT_R32G32B32A32_SINT;
|
||||
}
|
||||
break;
|
||||
case spirv_cross::SPIRType::UInt:
|
||||
case SPIRV_CROSS_NAMESPACE::SPIRType::UInt:
|
||||
switch (output.vecWidth) {
|
||||
case 1: return VK_FORMAT_R32_UINT;
|
||||
case 2: return VK_FORMAT_R32G32_UINT;
|
||||
@ -529,7 +529,7 @@ static VkFormat mvkFormatFromOutput(const SPIRVShaderOutput& output) {
|
||||
case 4: return VK_FORMAT_R32G32B32A32_UINT;
|
||||
}
|
||||
break;
|
||||
case spirv_cross::SPIRType::Float:
|
||||
case SPIRV_CROSS_NAMESPACE::SPIRType::Float:
|
||||
switch (output.vecWidth) {
|
||||
case 1: return VK_FORMAT_R32_SFLOAT;
|
||||
case 2: return VK_FORMAT_R32G32_SFLOAT;
|
||||
|
@ -32,8 +32,8 @@ bool getTessReflectionData(const std::vector<uint32_t>& tesc, const std::string&
|
||||
#ifndef SPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS
|
||||
try {
|
||||
#endif
|
||||
spirv_cross::CompilerReflection tescReflect(tesc);
|
||||
spirv_cross::CompilerReflection teseReflect(tese);
|
||||
SPIRV_CROSS_NAMESPACE::CompilerReflection tescReflect(tesc);
|
||||
SPIRV_CROSS_NAMESPACE::CompilerReflection teseReflect(tese);
|
||||
|
||||
if (!tescEntryName.empty()) {
|
||||
tescReflect.set_entry_point(tescEntryName, spv::ExecutionModelTessellationControl);
|
||||
@ -45,8 +45,8 @@ bool getTessReflectionData(const std::vector<uint32_t>& tesc, const std::string&
|
||||
tescReflect.compile();
|
||||
teseReflect.compile();
|
||||
|
||||
const spirv_cross::Bitset& tescModes = tescReflect.get_execution_mode_bitset();
|
||||
const spirv_cross::Bitset& teseModes = teseReflect.get_execution_mode_bitset();
|
||||
const SPIRV_CROSS_NAMESPACE::Bitset& tescModes = tescReflect.get_execution_mode_bitset();
|
||||
const SPIRV_CROSS_NAMESPACE::Bitset& teseModes = teseReflect.get_execution_mode_bitset();
|
||||
|
||||
// Extract the parameters from the shaders.
|
||||
if (tescModes.get(spv::ExecutionModeTriangles)) {
|
||||
@ -110,7 +110,7 @@ bool getTessReflectionData(const std::vector<uint32_t>& tesc, const std::string&
|
||||
return true;
|
||||
|
||||
#ifndef SPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS
|
||||
} catch (spirv_cross::CompilerError& ex) {
|
||||
} catch (SPIRV_CROSS_NAMESPACE::CompilerError& ex) {
|
||||
errorLog = ex.what();
|
||||
return false;
|
||||
}
|
||||
@ -122,9 +122,9 @@ bool getShaderOutputs(const std::vector<uint32_t>& spirv, spv::ExecutionModel mo
|
||||
#ifndef SPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS
|
||||
try {
|
||||
#endif
|
||||
spirv_cross::Parser parser(spirv);
|
||||
SPIRV_CROSS_NAMESPACE::Parser parser(spirv);
|
||||
parser.parse();
|
||||
spirv_cross::CompilerReflection reflect(parser.get_parsed_ir());
|
||||
SPIRV_CROSS_NAMESPACE::CompilerReflection reflect(parser.get_parsed_ir());
|
||||
if (!entryName.empty()) {
|
||||
reflect.set_entry_point(entryName, model);
|
||||
}
|
||||
@ -133,7 +133,7 @@ bool getShaderOutputs(const std::vector<uint32_t>& spirv, spv::ExecutionModel mo
|
||||
outputs.clear();
|
||||
|
||||
auto addSat = [](uint32_t a, uint32_t b) { return a == uint32_t(-1) ? a : a + b; };
|
||||
parser.get_parsed_ir().for_each_typed_id<spirv_cross::SPIRVariable>([&reflect, &outputs, model, addSat](uint32_t varID, const spirv_cross::SPIRVariable& var) {
|
||||
parser.get_parsed_ir().for_each_typed_id<SPIRV_CROSS_NAMESPACE::SPIRVariable>([&reflect, &outputs, model, addSat](uint32_t varID, const SPIRV_CROSS_NAMESPACE::SPIRVariable& var) {
|
||||
if (var.storage != spv::StorageClassOutput) { return; }
|
||||
|
||||
const auto* type = &reflect.get_type(reflect.get_type_from_variable(varID).parent_type);
|
||||
@ -149,7 +149,7 @@ bool getShaderOutputs(const std::vector<uint32_t>& spirv, spv::ExecutionModel mo
|
||||
if (model == spv::ExecutionModelTessellationControl && !patch)
|
||||
type = &reflect.get_type(type->parent_type);
|
||||
|
||||
if (type->basetype == spirv_cross::SPIRType::Struct) {
|
||||
if (type->basetype == SPIRV_CROSS_NAMESPACE::SPIRType::Struct) {
|
||||
for (uint32_t i = 0; i < type->member_types.size(); i++) {
|
||||
// Each member may have a location decoration. If not, each member
|
||||
// gets an incrementing location.
|
||||
@ -161,7 +161,7 @@ bool getShaderOutputs(const std::vector<uint32_t>& spirv, spv::ExecutionModel mo
|
||||
if (reflect.has_member_decoration(type->self, i, spv::DecorationBuiltIn)) {
|
||||
biType = (spv::BuiltIn)reflect.get_member_decoration(type->self, i, spv::DecorationBuiltIn);
|
||||
}
|
||||
const spirv_cross::SPIRType& memberType = reflect.get_type(type->member_types[i]);
|
||||
const SPIRV_CROSS_NAMESPACE::SPIRType& memberType = reflect.get_type(type->member_types[i]);
|
||||
if (memberType.columns > 1) {
|
||||
for (uint32_t i = 0; i < memberType.columns; i++) {
|
||||
outputs.push_back({memberType.basetype, memberType.vecsize, addSat(memberLoc, i), patch, biType});
|
||||
@ -198,7 +198,7 @@ bool getShaderOutputs(const std::vector<uint32_t>& spirv, spv::ExecutionModel mo
|
||||
}
|
||||
return true;
|
||||
#ifndef SPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS
|
||||
} catch (spirv_cross::CompilerError& ex) {
|
||||
} catch (SPIRV_CROSS_NAMESPACE::CompilerError& ex) {
|
||||
errorLog = ex.what();
|
||||
return false;
|
||||
}
|
||||
|
@ -53,7 +53,7 @@ namespace mvk {
|
||||
/** Reflection data on a single output of a shader. This contains the information needed to construct a stage-input descriptor for the next stage of a pipeline. */
|
||||
struct SPIRVShaderOutput {
|
||||
/** The type of the output. */
|
||||
spirv_cross::SPIRType::BaseType baseType;
|
||||
SPIRV_CROSS_NAMESPACE::SPIRType::BaseType baseType;
|
||||
|
||||
/** The vector size, if a vector. */
|
||||
uint32_t vecWidth;
|
||||
|
@ -183,7 +183,7 @@ MVK_PUBLIC_SYMBOL void SPIRVToMSLConverterContext::alignWith(const SPIRVToMSLCon
|
||||
#pragma mark SPIRVToMSLConverter
|
||||
|
||||
// Populates the entry point with info extracted from the SPRI-V compiler.
|
||||
void populateEntryPoint(SPIRVEntryPoint& entryPoint, spirv_cross::Compiler* pCompiler, SPIRVToMSLConverterOptions& options);
|
||||
void populateEntryPoint(SPIRVEntryPoint& entryPoint, SPIRV_CROSS_NAMESPACE::Compiler* pCompiler, SPIRVToMSLConverterOptions& options);
|
||||
|
||||
MVK_PUBLIC_SYMBOL void SPIRVToMSLConverter::setSPIRV(const vector<uint32_t>& spirv) { _spirv = spirv; }
|
||||
|
||||
@ -213,12 +213,12 @@ MVK_PUBLIC_SYMBOL bool SPIRVToMSLConverter::convert(SPIRVToMSLConverterContext&
|
||||
|
||||
if (shouldLogSPIRV) { logSPIRV("Converting"); }
|
||||
|
||||
spirv_cross::CompilerMSL* pMSLCompiler = nullptr;
|
||||
SPIRV_CROSS_NAMESPACE::CompilerMSL* pMSLCompiler = nullptr;
|
||||
|
||||
#ifndef SPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS
|
||||
try {
|
||||
#endif
|
||||
pMSLCompiler = new spirv_cross::CompilerMSL(_spirv);
|
||||
pMSLCompiler = new SPIRV_CROSS_NAMESPACE::CompilerMSL(_spirv);
|
||||
|
||||
if (context.options.hasEntryPoint()) {
|
||||
pMSLCompiler->set_entry_point(context.options.entryPointName, context.options.entryPointStage);
|
||||
@ -240,10 +240,10 @@ MVK_PUBLIC_SYMBOL bool SPIRVToMSLConverter::convert(SPIRVToMSLConverterContext&
|
||||
auto mslOpts = pMSLCompiler->get_msl_options();
|
||||
|
||||
#if MVK_MACOS
|
||||
mslOpts.platform = spirv_cross::CompilerMSL::Options::macOS;
|
||||
mslOpts.platform = SPIRV_CROSS_NAMESPACE::CompilerMSL::Options::macOS;
|
||||
#endif
|
||||
#if MVK_IOS
|
||||
mslOpts.platform = spirv_cross::CompilerMSL::Options::iOS;
|
||||
mslOpts.platform = SPIRV_CROSS_NAMESPACE::CompilerMSL::Options::iOS;
|
||||
#endif
|
||||
|
||||
mslOpts.msl_version = context.options.mslVersion;
|
||||
@ -268,7 +268,7 @@ MVK_PUBLIC_SYMBOL bool SPIRVToMSLConverter::convert(SPIRVToMSLConverterContext&
|
||||
|
||||
// Add vertex attributes
|
||||
if (context.stageSupportsVertexAttributes()) {
|
||||
spirv_cross::MSLVertexAttr va;
|
||||
SPIRV_CROSS_NAMESPACE::MSLVertexAttr va;
|
||||
for (auto& ctxVA : context.vertexAttributes) {
|
||||
va.location = ctxVA.location;
|
||||
va.msl_buffer = ctxVA.mslBuffer;
|
||||
@ -277,13 +277,13 @@ MVK_PUBLIC_SYMBOL bool SPIRVToMSLConverter::convert(SPIRVToMSLConverterContext&
|
||||
va.per_instance = ctxVA.isPerInstance;
|
||||
switch (ctxVA.format) {
|
||||
case MSLVertexFormat::Other:
|
||||
va.format = spirv_cross::MSL_VERTEX_FORMAT_OTHER;
|
||||
va.format = SPIRV_CROSS_NAMESPACE::MSL_VERTEX_FORMAT_OTHER;
|
||||
break;
|
||||
case MSLVertexFormat::UInt8:
|
||||
va.format = spirv_cross::MSL_VERTEX_FORMAT_UINT8;
|
||||
va.format = SPIRV_CROSS_NAMESPACE::MSL_VERTEX_FORMAT_UINT8;
|
||||
break;
|
||||
case MSLVertexFormat::UInt16:
|
||||
va.format = spirv_cross::MSL_VERTEX_FORMAT_UINT16;
|
||||
va.format = SPIRV_CROSS_NAMESPACE::MSL_VERTEX_FORMAT_UINT16;
|
||||
break;
|
||||
}
|
||||
pMSLCompiler->add_msl_vertex_attribute(va);
|
||||
@ -291,7 +291,7 @@ MVK_PUBLIC_SYMBOL bool SPIRVToMSLConverter::convert(SPIRVToMSLConverterContext&
|
||||
}
|
||||
|
||||
// Add resource bindings
|
||||
spirv_cross::MSLResourceBinding rb;
|
||||
SPIRV_CROSS_NAMESPACE::MSLResourceBinding rb;
|
||||
for (auto& ctxRB : context.resourceBindings) {
|
||||
rb.desc_set = ctxRB.descriptorSet;
|
||||
rb.binding = ctxRB.binding;
|
||||
@ -307,7 +307,7 @@ MVK_PUBLIC_SYMBOL bool SPIRVToMSLConverter::convert(SPIRVToMSLConverterContext&
|
||||
if (shouldLogMSL) { logSource(_msl, "MSL", "Converted"); }
|
||||
|
||||
#ifndef SPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS
|
||||
} catch (spirv_cross::CompilerError& ex) {
|
||||
} catch (SPIRV_CROSS_NAMESPACE::CompilerError& ex) {
|
||||
string errMsg("MSL conversion error: ");
|
||||
errMsg += ex.what();
|
||||
logError(errMsg.data());
|
||||
@ -340,12 +340,12 @@ MVK_PUBLIC_SYMBOL bool SPIRVToMSLConverter::convert(SPIRVToMSLConverterContext&
|
||||
|
||||
// To check GLSL conversion
|
||||
if (shouldLogGLSL) {
|
||||
spirv_cross::CompilerGLSL* pGLSLCompiler = nullptr;
|
||||
SPIRV_CROSS_NAMESPACE::CompilerGLSL* pGLSLCompiler = nullptr;
|
||||
|
||||
#ifndef SPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS
|
||||
try {
|
||||
#endif
|
||||
pGLSLCompiler = new spirv_cross::CompilerGLSL(_spirv);
|
||||
pGLSLCompiler = new SPIRV_CROSS_NAMESPACE::CompilerGLSL(_spirv);
|
||||
auto options = pGLSLCompiler->get_common_options();
|
||||
options.vulkan_semantics = true;
|
||||
options.separate_shader_objects = true;
|
||||
@ -353,7 +353,7 @@ MVK_PUBLIC_SYMBOL bool SPIRVToMSLConverter::convert(SPIRVToMSLConverterContext&
|
||||
string glsl = pGLSLCompiler->compile();
|
||||
logSource(glsl, "GLSL", "Estimated original");
|
||||
#ifndef SPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS
|
||||
} catch (spirv_cross::CompilerError& ex) {
|
||||
} catch (SPIRV_CROSS_NAMESPACE::CompilerError& ex) {
|
||||
string errMsg("Original GLSL extraction error: ");
|
||||
errMsg += ex.what();
|
||||
logMsg(errMsg.data());
|
||||
@ -442,17 +442,17 @@ void SPIRVToMSLConverter::logSource(string& src, const char* srcLang, const char
|
||||
#pragma mark Support functions
|
||||
|
||||
// Populate a workgroup size dimension.
|
||||
void populateWorkgroupDimension(SPIRVWorkgroupSizeDimension& wgDim, uint32_t size, spirv_cross::SpecializationConstant& spvSpecConst) {
|
||||
void populateWorkgroupDimension(SPIRVWorkgroupSizeDimension& wgDim, uint32_t size, SPIRV_CROSS_NAMESPACE::SpecializationConstant& spvSpecConst) {
|
||||
wgDim.size = max(size, 1u);
|
||||
wgDim.isSpecialized = (spvSpecConst.id != 0);
|
||||
wgDim.specializationID = spvSpecConst.constant_id;
|
||||
}
|
||||
|
||||
void populateEntryPoint(SPIRVEntryPoint& entryPoint, spirv_cross::Compiler* pCompiler, SPIRVToMSLConverterOptions& options) {
|
||||
void populateEntryPoint(SPIRVEntryPoint& entryPoint, SPIRV_CROSS_NAMESPACE::Compiler* pCompiler, SPIRVToMSLConverterOptions& options) {
|
||||
|
||||
if ( !pCompiler ) { return; }
|
||||
|
||||
spirv_cross::SPIREntryPoint spvEP;
|
||||
SPIRV_CROSS_NAMESPACE::SPIREntryPoint spvEP;
|
||||
if (options.hasEntryPoint()) {
|
||||
spvEP = pCompiler->get_entry_point(options.entryPointName, options.entryPointStage);
|
||||
} else {
|
||||
@ -463,7 +463,7 @@ void populateEntryPoint(SPIRVEntryPoint& entryPoint, spirv_cross::Compiler* pCom
|
||||
}
|
||||
}
|
||||
|
||||
spirv_cross::SpecializationConstant widthSC, heightSC, depthSC;
|
||||
SPIRV_CROSS_NAMESPACE::SpecializationConstant widthSC, heightSC, depthSC;
|
||||
pCompiler->get_work_group_size_specialization_constants(widthSC, heightSC, depthSC);
|
||||
|
||||
entryPoint.mtlFunctionName = spvEP.name;
|
||||
|
@ -717,6 +717,7 @@
|
||||
BITCODE_GENERATION_MODE = bitcode;
|
||||
CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = NO;
|
||||
CLANG_WARN_UNREACHABLE_CODE = NO;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = "SPIRV_CROSS_NAMESPACE_OVERRIDE=MVK_spirv_cross";
|
||||
GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = NO;
|
||||
GCC_WARN_CHECK_SWITCH_STATEMENTS = NO;
|
||||
GCC_WARN_UNUSED_PARAMETER = NO;
|
||||
@ -735,6 +736,7 @@
|
||||
BITCODE_GENERATION_MODE = bitcode;
|
||||
CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = NO;
|
||||
CLANG_WARN_UNREACHABLE_CODE = NO;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = "SPIRV_CROSS_NAMESPACE_OVERRIDE=MVK_spirv_cross";
|
||||
GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = NO;
|
||||
GCC_WARN_CHECK_SWITCH_STATEMENTS = NO;
|
||||
GCC_WARN_UNUSED_PARAMETER = NO;
|
||||
@ -751,6 +753,7 @@
|
||||
buildSettings = {
|
||||
CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = NO;
|
||||
CLANG_WARN_UNREACHABLE_CODE = NO;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = "SPIRV_CROSS_NAMESPACE_OVERRIDE=MVK_spirv_cross";
|
||||
GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = NO;
|
||||
GCC_WARN_CHECK_SWITCH_STATEMENTS = NO;
|
||||
GCC_WARN_UNUSED_PARAMETER = NO;
|
||||
@ -769,6 +772,7 @@
|
||||
buildSettings = {
|
||||
CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = NO;
|
||||
CLANG_WARN_UNREACHABLE_CODE = NO;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = "SPIRV_CROSS_NAMESPACE_OVERRIDE=MVK_spirv_cross";
|
||||
GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = NO;
|
||||
GCC_WARN_CHECK_SWITCH_STATEMENTS = NO;
|
||||
GCC_WARN_UNUSED_PARAMETER = NO;
|
||||
@ -787,6 +791,7 @@
|
||||
buildSettings = {
|
||||
ARCHS = arm64;
|
||||
BITCODE_GENERATION_MODE = bitcode;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = "SPIRV_CROSS_NAMESPACE_OVERRIDE=MVK_spirv_cross";
|
||||
GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO;
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
@ -807,6 +812,7 @@
|
||||
buildSettings = {
|
||||
ARCHS = arm64;
|
||||
BITCODE_GENERATION_MODE = bitcode;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = "SPIRV_CROSS_NAMESPACE_OVERRIDE=MVK_spirv_cross";
|
||||
GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO;
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
@ -825,6 +831,7 @@
|
||||
A93903C51C57E9ED00FE90DC /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_PREPROCESSOR_DEFINITIONS = "SPIRV_CROSS_NAMESPACE_OVERRIDE=MVK_spirv_cross";
|
||||
GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO;
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
@ -841,6 +848,7 @@
|
||||
A93903C61C57E9ED00FE90DC /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
GCC_PREPROCESSOR_DEFINITIONS = "SPIRV_CROSS_NAMESPACE_OVERRIDE=MVK_spirv_cross";
|
||||
GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO;
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
@ -884,7 +892,6 @@
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"DEBUG=1",
|
||||
"$(inherited)",
|
||||
"SPIRV_CROSS_FLT_FMT=\\\"%.6g\\\"",
|
||||
);
|
||||
GCC_SYMBOLS_PRIVATE_EXTERN = YES;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
@ -939,7 +946,7 @@
|
||||
GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_OPTIMIZATION_LEVEL = fast;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = "SPIRV_CROSS_FLT_FMT=\\\"%.6g\\\"";
|
||||
GCC_PREPROCESSOR_DEFINITIONS = "";
|
||||
GCC_SYMBOLS_PRIVATE_EXTERN = YES;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES;
|
||||
|
Loading…
x
Reference in New Issue
Block a user