forked from MoonsideGames/Refresh
Added SPIRV-Cross as a submodule. Implemented CreateShaderModule and QueueDestroyShaderModule
parent
4c7fbec7ab
commit
f66d0149f7
|
@ -1,3 +1,6 @@
|
|||
[submodule "Vulkan-Headers"]
|
||||
path = Vulkan-Headers
|
||||
url = https://github.com/KhronosGroup/Vulkan-Headers.git
|
||||
[submodule "SPIRV-Cross"]
|
||||
path = SPIRV-Cross
|
||||
url = https://github.com/KhronosGroup/SPIRV-Cross
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
Subproject commit d5c3bd8b5e7db9e2d7fe809944b47b8f88e1c732
|
|
@ -31,6 +31,7 @@
|
|||
#define COBJMACROS
|
||||
#include <d3d11.h>
|
||||
#include <dxgi.h>
|
||||
#include <d3dcompiler.h>
|
||||
|
||||
#include "Refresh_Driver.h"
|
||||
#include "Refresh_Driver_D3D11_cdefines.h"
|
||||
|
@ -38,6 +39,8 @@
|
|||
#include <SDL.h>
|
||||
#include <SDL_syswm.h>
|
||||
|
||||
#include <spirv_cross_c.h>
|
||||
|
||||
/* Defines */
|
||||
|
||||
#define D3D11_DLL "d3d11.dll"
|
||||
|
@ -78,6 +81,22 @@
|
|||
); \
|
||||
}
|
||||
|
||||
/* D3DCompile signature */
|
||||
|
||||
typedef HRESULT(WINAPI *PFN_D3DCOMPILE)(
|
||||
LPCVOID pSrcData,
|
||||
SIZE_T SrcDataSize,
|
||||
LPCSTR pSourceName,
|
||||
const D3D_SHADER_MACRO* pDefines,
|
||||
ID3DInclude* pInclude,
|
||||
LPCSTR pEntrypoint,
|
||||
LPCSTR pTarget,
|
||||
UINT Flags1,
|
||||
UINT Flags2,
|
||||
ID3DBlob **ppCode,
|
||||
ID3DBlob **ppErrorMsgs
|
||||
);
|
||||
|
||||
/* Conversions */
|
||||
|
||||
static DXGI_FORMAT RefreshToD3D11_SurfaceFormat[] =
|
||||
|
@ -302,6 +321,14 @@ typedef struct D3D11CommandBufferPool
|
|||
uint32_t capacity;
|
||||
} D3D11CommandBufferPool;
|
||||
|
||||
typedef struct D3D11ShaderModule
|
||||
{
|
||||
spvc_context context;
|
||||
size_t numEntryPoints;
|
||||
const spvc_entry_point *entryPoints;
|
||||
ID3D11DeviceChild **shaders; /* ID3D11VertexShader, ID3D11PixelShader, ID3D11ComputeShader */
|
||||
} D3D11ShaderModule;
|
||||
|
||||
typedef struct D3D11Renderer
|
||||
{
|
||||
ID3D11Device *device;
|
||||
|
@ -310,6 +337,7 @@ typedef struct D3D11Renderer
|
|||
IDXGIAdapter1* adapter;
|
||||
void *d3d11_dll;
|
||||
void *dxgi_dll;
|
||||
void *d3dcompiler_dll;
|
||||
SDL_mutex *contextLock;
|
||||
|
||||
D3D11CommandBufferPool *commandBufferPool;
|
||||
|
@ -323,6 +351,8 @@ typedef struct D3D11Renderer
|
|||
|
||||
uint8_t debugMode;
|
||||
D3D_FEATURE_LEVEL featureLevel;
|
||||
|
||||
PFN_D3DCOMPILE D3DCompileFunc;
|
||||
} D3D11Renderer;
|
||||
|
||||
/* Predeclarations */
|
||||
|
@ -621,6 +651,7 @@ static void D3D11_DestroyDevice(
|
|||
/* Unload the DLLs */
|
||||
SDL_UnloadObject(renderer->d3d11_dll);
|
||||
SDL_UnloadObject(renderer->dxgi_dll);
|
||||
SDL_UnloadObject(renderer->d3dcompiler_dll);
|
||||
|
||||
/* Free the renderer and Refresh Device */
|
||||
SDL_free(renderer);
|
||||
|
@ -703,7 +734,194 @@ static Refresh_ShaderModule* D3D11_CreateShaderModule(
|
|||
Refresh_Renderer *driverData,
|
||||
Refresh_ShaderModuleCreateInfo *shaderModuleCreateInfo
|
||||
) {
|
||||
NOT_IMPLEMENTED
|
||||
D3D11Renderer *renderer = (D3D11Renderer*) driverData;
|
||||
spvc_context context;
|
||||
spvc_result result;
|
||||
spvc_parsed_ir parsedIR;
|
||||
spvc_compiler compiler;
|
||||
const spvc_entry_point *entryPoints;
|
||||
size_t numEntryPoints;
|
||||
spvc_compiler_options compilerOptions;
|
||||
char *hlslSource;
|
||||
const char *shaderModel;
|
||||
ID3DBlob *blob;
|
||||
ID3DBlob *errorBlob = NULL;
|
||||
ID3D11DeviceChild **shaders;
|
||||
D3D11ShaderModule *shaderModule;
|
||||
uint32_t i;
|
||||
HRESULT res;
|
||||
|
||||
/* Create the context */
|
||||
result = spvc_context_create(&context);
|
||||
if (result != SPVC_SUCCESS)
|
||||
{
|
||||
Refresh_LogError("Could not create SPIRV Cross context! Error: %X", result);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Parse the SPIRV input */
|
||||
result = spvc_context_parse_spirv(
|
||||
context,
|
||||
shaderModuleCreateInfo->byteCode,
|
||||
shaderModuleCreateInfo->codeSize / sizeof(uint32_t), /* word count, not byte length */
|
||||
&parsedIR
|
||||
);
|
||||
if (result != SPVC_SUCCESS)
|
||||
{
|
||||
Refresh_LogError("Could not parse SPIRV! Error: %X", result);
|
||||
spvc_context_destroy(context); /* free all context-related memory */
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Create the cross compiler */
|
||||
result = spvc_context_create_compiler(
|
||||
context,
|
||||
SPVC_BACKEND_HLSL,
|
||||
parsedIR,
|
||||
SPVC_CAPTURE_MODE_TAKE_OWNERSHIP,
|
||||
&compiler
|
||||
);
|
||||
if (result != SPVC_SUCCESS)
|
||||
{
|
||||
Refresh_LogError("Could not create SPIRV to HLSL cross compiler! Error: %X", result);
|
||||
spvc_context_destroy(context); /* free all context-related memory */
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Get entry points from the source bytecode */
|
||||
result = spvc_compiler_get_entry_points(compiler, &entryPoints, &numEntryPoints);
|
||||
if (result != SPVC_SUCCESS)
|
||||
{
|
||||
Refresh_LogError("Could not get SPIRV entry points! Error: %X", result);
|
||||
spvc_context_destroy(context); /* free all context-related memory */
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Set HLSL cross-compile options (target SM5.0) */
|
||||
spvc_compiler_create_compiler_options(compiler, &compilerOptions);
|
||||
spvc_compiler_options_set_uint(
|
||||
compilerOptions,
|
||||
SPVC_COMPILER_OPTION_HLSL_SHADER_MODEL,
|
||||
50 /* shader model 5.0 */
|
||||
);
|
||||
spvc_compiler_install_compiler_options(compiler, compilerOptions);
|
||||
|
||||
/* Cross compile to HLSL */
|
||||
result = spvc_compiler_compile(compiler, &hlslSource);
|
||||
if (result != SPVC_SUCCESS)
|
||||
{
|
||||
Refresh_LogError("Could not cross-compile SPIRV to HLSL! Error: %X", result);
|
||||
spvc_context_destroy(context); /* free all context-related memory */
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Allocate memory for the D3D11 shader list */
|
||||
shaders = (ID3D11DeviceChild**) SDL_malloc(numEntryPoints * sizeof(ID3D11DeviceChild*));
|
||||
|
||||
/* Compile each HLSL entry point into a D3D shader */
|
||||
for (i = 0; i < numEntryPoints; i += 1)
|
||||
{
|
||||
/* Determine the exact shader model to use */
|
||||
switch (entryPoints[i].execution_model)
|
||||
{
|
||||
case SpvExecutionModelVertex:
|
||||
shaderModel = "vs_5_0";
|
||||
break;
|
||||
|
||||
case SpvExecutionModelFragment:
|
||||
shaderModel = "ps_5_0";
|
||||
break;
|
||||
|
||||
case SpvExecutionModelGLCompute:
|
||||
shaderModel = "cs_5_0";
|
||||
break;
|
||||
|
||||
default:
|
||||
Refresh_LogError(
|
||||
"Attempting to compile a shader with an unknown execution model: %X",
|
||||
entryPoints[i].execution_model
|
||||
);
|
||||
spvc_context_destroy(context); /* free all context-related memory */
|
||||
SDL_free(shaders);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Compile the shader blob */
|
||||
res = renderer->D3DCompileFunc(
|
||||
hlslSource,
|
||||
SDL_strlen(hlslSource),
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
entryPoints[i].name,
|
||||
shaderModel,
|
||||
0,
|
||||
0,
|
||||
&blob,
|
||||
&errorBlob
|
||||
);
|
||||
if (FAILED(res))
|
||||
{
|
||||
Refresh_LogError(
|
||||
"D3DCompile failed on HLSL shader with entry point '%s'! Error: %X\nCompiler error message: %s",
|
||||
entryPoints[i].name,
|
||||
res,
|
||||
errorBlob ? (const char*) ID3D10Blob_GetBufferPointer(errorBlob) : "<none>"
|
||||
);
|
||||
spvc_context_destroy(context); /* free all context-related memory */
|
||||
SDL_free(shaders);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Create the shader from the blob */
|
||||
switch (entryPoints[i].execution_model)
|
||||
{
|
||||
case SpvExecutionModelVertex:
|
||||
res = ID3D11Device_CreateVertexShader(
|
||||
renderer->device,
|
||||
ID3D10Blob_GetBufferPointer(blob),
|
||||
ID3D10Blob_GetBufferSize(blob),
|
||||
NULL,
|
||||
(ID3D11VertexShader**) &shaders[i]
|
||||
);
|
||||
break;
|
||||
|
||||
case SpvExecutionModelFragment:
|
||||
res = ID3D11Device_CreatePixelShader(
|
||||
renderer->device,
|
||||
ID3D10Blob_GetBufferPointer(blob),
|
||||
ID3D10Blob_GetBufferSize(blob),
|
||||
NULL,
|
||||
(ID3D11PixelShader**) &shaders[i]
|
||||
);
|
||||
break;
|
||||
|
||||
case SpvExecutionModelGLCompute:
|
||||
res = ID3D11Device_CreateComputeShader(
|
||||
renderer->device,
|
||||
ID3D10Blob_GetBufferPointer(blob),
|
||||
ID3D10Blob_GetBufferSize(blob),
|
||||
NULL,
|
||||
(ID3D11ComputeShader**) &shaders[i]
|
||||
);
|
||||
break;
|
||||
}
|
||||
if (FAILED(res))
|
||||
{
|
||||
Refresh_LogError("D3D11 shader creation failed! Error code: %X", res);
|
||||
spvc_context_destroy(context); /* free all context-related memory */
|
||||
SDL_free(shaders);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
/* Create the final shader module object to return */
|
||||
shaderModule = (D3D11ShaderModule*) SDL_malloc(sizeof(D3D11ShaderModule));
|
||||
shaderModule->context = context;
|
||||
shaderModule->entryPoints = entryPoints;
|
||||
shaderModule->numEntryPoints = numEntryPoints;
|
||||
shaderModule->shaders = shaders;
|
||||
return (Refresh_ShaderModule*) shaderModule;
|
||||
}
|
||||
|
||||
static Refresh_Texture* D3D11_CreateTexture(
|
||||
|
@ -862,7 +1080,20 @@ static void D3D11_QueueDestroyShaderModule(
|
|||
Refresh_Renderer* driverData,
|
||||
Refresh_ShaderModule* shaderModule
|
||||
) {
|
||||
NOT_IMPLEMENTED
|
||||
D3D11ShaderModule *d3dShaderModule = (D3D11ShaderModule*) shaderModule;
|
||||
uint32_t i;
|
||||
|
||||
/* Release the D3D11 shader objects and free the array */
|
||||
for (i = 0; i < d3dShaderModule->numEntryPoints; i += 1)
|
||||
{
|
||||
ID3D11DeviceChild_Release(d3dShaderModule->shaders[i]);
|
||||
}
|
||||
SDL_free(d3dShaderModule->shaders);
|
||||
|
||||
/* Destroy the SPIRV-Cross context.
|
||||
* This should destroy the entryPoints list as well.
|
||||
*/
|
||||
spvc_context_destroy(d3dShaderModule->context);
|
||||
}
|
||||
|
||||
static void D3D11_QueueDestroyComputePipeline(
|
||||
|
@ -1291,6 +1522,25 @@ static Refresh_Device* D3D11_CreateDevice(
|
|||
renderer = (D3D11Renderer*) SDL_malloc(sizeof(D3D11Renderer));
|
||||
SDL_memset(renderer, 0, sizeof(D3D11Renderer));
|
||||
|
||||
/* Load the D3DCompiler library */
|
||||
renderer->d3dcompiler_dll = SDL_LoadObject(D3DCOMPILER_DLL);
|
||||
if (renderer->d3dcompiler_dll == NULL)
|
||||
{
|
||||
Refresh_LogError("Could not find " D3DCOMPILER_DLL);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Load the D3DCompile function pointer */
|
||||
renderer->D3DCompileFunc = (PFN_D3DCOMPILE) SDL_LoadFunction(
|
||||
renderer->d3dcompiler_dll,
|
||||
"D3DCompile"
|
||||
);
|
||||
if (renderer->D3DCompileFunc == NULL)
|
||||
{
|
||||
Refresh_LogError("Could not load D3DCompile function!");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Load the DXGI library */
|
||||
renderer->dxgi_dll = SDL_LoadObject(DXGI_DLL);
|
||||
if (renderer->dxgi_dll == NULL)
|
||||
|
|
|
@ -5,22 +5,50 @@ VisualStudioVersion = 16.0.30717.126
|
|||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Refresh", "Refresh.vcxproj", "{6DB15344-E000-45CB-A48A-1D72F7D6E945}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SPIRV-Cross", "SPIRV-Cross\SPIRV-Cross.vcxproj", "{C9462931-41A4-4E61-B145-F2D2CDE43C69}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|x64 = Debug|x64
|
||||
Debug|x86 = Debug|x86
|
||||
MinSizeRel|x64 = MinSizeRel|x64
|
||||
MinSizeRel|x86 = MinSizeRel|x86
|
||||
Release|x64 = Release|x64
|
||||
Release|x86 = Release|x86
|
||||
RelWithDebInfo|x64 = RelWithDebInfo|x64
|
||||
RelWithDebInfo|x86 = RelWithDebInfo|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{6DB15344-E000-45CB-A48A-1D72F7D6E945}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{6DB15344-E000-45CB-A48A-1D72F7D6E945}.Debug|x64.Build.0 = Debug|x64
|
||||
{6DB15344-E000-45CB-A48A-1D72F7D6E945}.Debug|x86.ActiveCfg = Debug|Win32
|
||||
{6DB15344-E000-45CB-A48A-1D72F7D6E945}.Debug|x86.Build.0 = Debug|Win32
|
||||
{6DB15344-E000-45CB-A48A-1D72F7D6E945}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
|
||||
{6DB15344-E000-45CB-A48A-1D72F7D6E945}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
|
||||
{6DB15344-E000-45CB-A48A-1D72F7D6E945}.MinSizeRel|x86.ActiveCfg = MinSizeRel|x64
|
||||
{6DB15344-E000-45CB-A48A-1D72F7D6E945}.Release|x64.ActiveCfg = Release|x64
|
||||
{6DB15344-E000-45CB-A48A-1D72F7D6E945}.Release|x64.Build.0 = Release|x64
|
||||
{6DB15344-E000-45CB-A48A-1D72F7D6E945}.Release|x86.ActiveCfg = Release|Win32
|
||||
{6DB15344-E000-45CB-A48A-1D72F7D6E945}.Release|x86.Build.0 = Release|Win32
|
||||
{6DB15344-E000-45CB-A48A-1D72F7D6E945}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
|
||||
{6DB15344-E000-45CB-A48A-1D72F7D6E945}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
|
||||
{6DB15344-E000-45CB-A48A-1D72F7D6E945}.RelWithDebInfo|x86.ActiveCfg = RelWithDebInfo|x64
|
||||
{C9462931-41A4-4E61-B145-F2D2CDE43C69}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{C9462931-41A4-4E61-B145-F2D2CDE43C69}.Debug|x64.Build.0 = Debug|x64
|
||||
{C9462931-41A4-4E61-B145-F2D2CDE43C69}.Debug|x86.ActiveCfg = Debug|Win32
|
||||
{C9462931-41A4-4E61-B145-F2D2CDE43C69}.Debug|x86.Build.0 = Debug|Win32
|
||||
{C9462931-41A4-4E61-B145-F2D2CDE43C69}.MinSizeRel|x64.ActiveCfg = Debug|x64
|
||||
{C9462931-41A4-4E61-B145-F2D2CDE43C69}.MinSizeRel|x64.Build.0 = Debug|x64
|
||||
{C9462931-41A4-4E61-B145-F2D2CDE43C69}.MinSizeRel|x86.ActiveCfg = Debug|Win32
|
||||
{C9462931-41A4-4E61-B145-F2D2CDE43C69}.MinSizeRel|x86.Build.0 = Debug|Win32
|
||||
{C9462931-41A4-4E61-B145-F2D2CDE43C69}.Release|x64.ActiveCfg = Release|x64
|
||||
{C9462931-41A4-4E61-B145-F2D2CDE43C69}.Release|x64.Build.0 = Release|x64
|
||||
{C9462931-41A4-4E61-B145-F2D2CDE43C69}.Release|x86.ActiveCfg = Release|Win32
|
||||
{C9462931-41A4-4E61-B145-F2D2CDE43C69}.Release|x86.Build.0 = Release|Win32
|
||||
{C9462931-41A4-4E61-B145-F2D2CDE43C69}.RelWithDebInfo|x64.ActiveCfg = Release|x64
|
||||
{C9462931-41A4-4E61-B145-F2D2CDE43C69}.RelWithDebInfo|x64.Build.0 = Release|x64
|
||||
{C9462931-41A4-4E61-B145-F2D2CDE43C69}.RelWithDebInfo|x86.ActiveCfg = Release|Win32
|
||||
{C9462931-41A4-4E61-B145-F2D2CDE43C69}.RelWithDebInfo|x86.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
|
|
@ -62,6 +62,7 @@
|
|||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>REFRESH_DRIVER_D3D11;REFRESH_DRIVER_VULKAN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\SPIRV-Cross;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<GenerateDebugInformation>DebugFull</GenerateDebugInformation>
|
||||
|
@ -75,6 +76,7 @@
|
|||
<PreprocessorDefinitions>REFRESH_DRIVER_D3D11;REFRESH_DRIVER_VULKAN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\SPIRV-Cross;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
|
@ -95,6 +97,11 @@
|
|||
<ClInclude Include="..\src\Refresh_Driver_D3D11_cdefines.h" />
|
||||
<ClInclude Include="..\src\Refresh_Driver_Vulkan_vkfuncs.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="SPIRV-Cross\SPIRV-Cross.vcxproj">
|
||||
<Project>{c9462931-41a4-4e61-b145-f2d2cde43c69}</Project>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
|
|
|
@ -0,0 +1,164 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\SPIRV-Cross\spirv_cfg.cpp" />
|
||||
<ClCompile Include="..\..\SPIRV-Cross\spirv_cross.cpp" />
|
||||
<ClCompile Include="..\..\SPIRV-Cross\spirv_cross_c.cpp" />
|
||||
<ClCompile Include="..\..\SPIRV-Cross\spirv_cross_parsed_ir.cpp" />
|
||||
<ClCompile Include="..\..\SPIRV-Cross\spirv_glsl.cpp" />
|
||||
<ClCompile Include="..\..\SPIRV-Cross\spirv_hlsl.cpp" />
|
||||
<ClCompile Include="..\..\SPIRV-Cross\spirv_parser.cpp" />
|
||||
<ClCompile Include="..\..\SPIRV-Cross\spirv_reflect.cpp" />
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<VCProjectVersion>16.0</VCProjectVersion>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<ProjectGuid>{c9462931-41a4-4e61-b145-f2d2cde43c69}</ProjectGuid>
|
||||
<RootNamespace>SPIRVCross</RootNamespace>
|
||||
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="Shared">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>
|
||||
</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>
|
||||
</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>_DEBUG;_LIB;%(PreprocessorDefinitions);SPIRV_CROSS_C_API_HLSL=1;SPIRV_CROSS_C_API_GLSL=1;SPIRV_CROSS_C_API_REFLECT=1</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>
|
||||
</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>NDEBUG;_LIB;%(PreprocessorDefinitions);SPIRV_CROSS_C_API_HLSL=1;SPIRV_CROSS_C_API_REFLECT=1</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>
|
||||
</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
|
@ -0,0 +1,43 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Resource Files">
|
||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\SPIRV-Cross\spirv_cfg.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\SPIRV-Cross\spirv_cross.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\SPIRV-Cross\spirv_cross_c.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\SPIRV-Cross\spirv_cross_parsed_ir.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\SPIRV-Cross\spirv_hlsl.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\SPIRV-Cross\spirv_parser.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\SPIRV-Cross\spirv_reflect.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\SPIRV-Cross\spirv_glsl.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
</Project>
|
Loading…
Reference in New Issue