Added SPIRV-Cross as a submodule. Implemented CreateShaderModule and QueueDestroyShaderModule
	
		
			
	
		
	
	
		
			
				
	
				continuous-integration/drone/pr Build is failing
				
					Details
				
			
		
	
				
					
				
			
				
	
				continuous-integration/drone/pr Build is failing
				
					Details
				
			
		
	
							parent
							
								
									4a1e4a49a8
								
							
						
					
					
						commit
						0137503ec3
					
				|  | @ -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); | ||||
|  | @ -700,10 +731,197 @@ static Refresh_Sampler* D3D11_CreateSampler( | |||
| } | ||||
| 
 | ||||
| static Refresh_ShaderModule* D3D11_CreateShaderModule( | ||||
| 	Refresh_Renderer* driverData, | ||||
| 	Refresh_ShaderModuleCreateInfo* shaderModuleCreateInfo | ||||
| 	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