Compile GLSL shaders to SPIR-V to generate 'disassembly' (hex dump)

This commit is contained in:
baldurk
2015-07-08 17:44:10 +02:00
parent 4ee82dd1b0
commit 1b0d545fbe
19 changed files with 992 additions and 262 deletions
+11
View File
@@ -64,6 +64,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "shaders", "shaders", "{DB2D
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dxbc", "renderdoc\driver\shaders\dxbc\renderdoc_dxbc.vcxproj", "{C43FF27E-A155-4852-88EC-5CE9334C07A8}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "spirv", "renderdoc\driver\shaders\spirv\renderdoc_spirv.vcxproj", "{0AAE0AD1-371B-4A36-9ED1-80E10E960605}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Profile|Win32 = Profile|Win32
@@ -176,6 +178,14 @@ Global
{C43FF27E-A155-4852-88EC-5CE9334C07A8}.Release|Win32.Build.0 = Release|Win32
{C43FF27E-A155-4852-88EC-5CE9334C07A8}.Release|x64.ActiveCfg = Release|x64
{C43FF27E-A155-4852-88EC-5CE9334C07A8}.Release|x64.Build.0 = Release|x64
{0AAE0AD1-371B-4A36-9ED1-80E10E960605}.Profile|Win32.ActiveCfg = Profile|Win32
{0AAE0AD1-371B-4A36-9ED1-80E10E960605}.Profile|Win32.Build.0 = Profile|Win32
{0AAE0AD1-371B-4A36-9ED1-80E10E960605}.Profile|x64.ActiveCfg = Profile|x64
{0AAE0AD1-371B-4A36-9ED1-80E10E960605}.Profile|x64.Build.0 = Profile|x64
{0AAE0AD1-371B-4A36-9ED1-80E10E960605}.Release|Win32.ActiveCfg = Release|Win32
{0AAE0AD1-371B-4A36-9ED1-80E10E960605}.Release|Win32.Build.0 = Release|Win32
{0AAE0AD1-371B-4A36-9ED1-80E10E960605}.Release|x64.ActiveCfg = Release|x64
{0AAE0AD1-371B-4A36-9ED1-80E10E960605}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -198,5 +208,6 @@ Global
{F92FCDA6-A261-4EEC-9CD0-73A11FBCC459} = {864A44B0-5612-451A-857F-41E3EF785EF6}
{DB2DDA74-A668-4AC7-A1D5-198C9F0BD242} = {864A44B0-5612-451A-857F-41E3EF785EF6}
{C43FF27E-A155-4852-88EC-5CE9334C07A8} = {DB2DDA74-A668-4AC7-A1D5-198C9F0BD242}
{0AAE0AD1-371B-4A36-9ED1-80E10E960605} = {DB2DDA74-A668-4AC7-A1D5-198C9F0BD242}
EndGlobalSection
EndGlobal
+9 -3
View File
@@ -8,7 +8,7 @@ MACROS=-DLINUX \
CFLAGS=-c -Wall -Werror -Wno-unused -Wno-unknown-pragmas -fPIC $(MACROS) -I. -I3rdparty/
CPPFLAGS=-std=c++11 -g -Wno-reorder -fvisibility=hidden -fvisibility-inlines-hidden
LDFLAGS=-lpthread -lrt -shared -ldl -lX11
LIBS=driver/gl/rdoc_gl.a
LIBS=driver/gl/rdoc_gl.a driver/shaders/spirv/rdoc_spirv.a
OBJDIR=.obj
OBJECTS=replay/replay_output.o \
replay/replay_renderer.o \
@@ -64,12 +64,12 @@ all: librenderdoc.so
$(OBJDIR)/%.o: %.cpp
@mkdir -p $$(dirname $@)
$(CPP) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
@$(CPP) $(CFLAGS) $(CPPFLAGS) -MM -MT $(OBJDIR)/$*.o $*.cpp > $(OBJDIR)/$*.d
@$(CPP) $(CFLAGS) $(CPPFLAGS) -MM -MT $(OBJDIR)/$*.o $< > $(OBJDIR)/$*.d
$(OBJDIR)/%.o: %.c
@mkdir -p $$(dirname $@)
$(CC) $(CFLAGS) -c -o $@ $<
@$(CC) $(CFLAGS) -MM -MT $(OBJDIR)/$*.o $*.c > $(OBJDIR)/$*.d
@$(CC) $(CFLAGS) -MM -MT $(OBJDIR)/$*.o $< > $(OBJDIR)/$*.d
# objcopy needs to be run in with paths in current directory
# to produce the right symbol names
@@ -104,9 +104,14 @@ OBJDIR_DATA=$(addprefix $(OBJDIR)/, $(DATA))
-include $(OBJDIR_OBJECTS:.o=.d)
.PHONY: driver/gl/rdoc_gl.a
driver/gl/rdoc_gl.a:
cd driver/gl && make rdoc_gl.a
.PHONY: driver/shaders/spirv/rdoc_spirv.a
driver/shaders/spirv/rdoc_spirv.a:
cd driver/shaders/spirv && make rdoc_spirv.a
librenderdoc.so: $(OBJDIR_OBJECTS) $(OBJDIR_DATA) $(LIBS)
$(CPP) -o librenderdoc.so $^ $(LDFLAGS)
@@ -114,3 +119,4 @@ librenderdoc.so: $(OBJDIR_OBJECTS) $(OBJDIR_DATA) $(LIBS)
clean:
rm -rf librenderdoc.so $(OBJDIR)
cd driver/gl && make clean
cd driver/shaders/spirv && make clean
+3
View File
@@ -268,6 +268,9 @@ RenderDoc::~RenderDoc()
UnloadCrashHandler();
}
for(auto it=m_ShutdownFunctions.begin(); it != m_ShutdownFunctions.end(); ++it)
(*it)();
for(size_t i=0; i < m_Captures.size(); i++)
{
if(m_Captures[i].retrieved)
+7
View File
@@ -153,6 +153,8 @@ class IReplayDriver;
typedef ReplayCreateStatus (*RemoteDriverProvider)(const char *logfile, IRemoteDriver **driver);
typedef ReplayCreateStatus (*ReplayDriverProvider)(const char *logfile, IReplayDriver **driver);
typedef void (*ShutdownFunction)();
// this class mediates everything and owns any 'global' resources such as the crash handler.
//
// It acts as a central hub that registers any driver providers and can be asked to create one
@@ -174,6 +176,8 @@ class RenderDoc
void Initialise();
void Shutdown();
void RegisterShutdownFunction(ShutdownFunction func) { m_ShutdownFunctions.insert(func); }
void SetReplayApp(bool replay) { m_Replay = replay; }
bool IsReplayApp() const { return m_Replay; }
@@ -317,6 +321,8 @@ class RenderDoc
map<RDCDriver, ReplayDriverProvider> m_ReplayDriverProviders;
map<RDCDriver, RemoteDriverProvider> m_RemoteDriverProviders;
set<ShutdownFunction> m_ShutdownFunctions;
struct FrameCap
{
FrameCap() : FrameCapturer(NULL), RefCount(1) {}
@@ -369,6 +375,7 @@ class RenderDoc
static void RemoteAccessClientThread(void *s);
ICrashHandler *m_ExHandler;
bool m_GLSLang;
};
struct DriverRegistration
+2 -2
View File
@@ -39,12 +39,12 @@ all: rdoc_gl.a
$(OBJDIR)/%.o: %.cpp
@mkdir -p $$(dirname $@)
$(CPP) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
@$(CPP) $(CFLAGS) $(CPPFLAGS) -MM -MT $(OBJDIR)/$*.o $*.cpp > $(OBJDIR)/$*.d
@$(CPP) $(CFLAGS) $(CPPFLAGS) -MM -MT $(OBJDIR)/$*.o $< > $(OBJDIR)/$*.d
$(OBJDIR)/%.o: %.c
@mkdir -p $$(dirname $@)
$(CC) $(CFLAGS) -c -o $@ $<
@$(CC) $(CFLAGS) -MM -MT $(OBJDIR)/$*.o $*.c > $(OBJDIR)/$*.d
@$(CC) $(CFLAGS) -MM -MT $(OBJDIR)/$*.o $< > $(OBJDIR)/$*.d
OBJDIR_OBJECTS=$(addprefix $(OBJDIR)/, $(OBJECTS))
+5
View File
@@ -26,6 +26,8 @@
#include "common/common.h"
#include "gl_driver.h"
#include "driver/shaders/spirv/spirv_common.h"
#include "serialise/string_utils.h"
#include "replay/type_helpers.h"
@@ -766,6 +768,9 @@ WrappedOpenGL::WrappedOpenGL(const char *logfile, const GLHookSet &funcs)
m_DeviceRecord = m_ContextRecord = NULL;
TrackedResource::SetReplayResourceIDs();
InitSPIRVCompiler();
RenderDoc::Inst().RegisterShutdownFunction(&ShutdownSPIRVCompiler);
}
m_FakeBB_FBO = 0;
+1
View File
@@ -250,6 +250,7 @@ class WrappedOpenGL : public IFrameCapturer
GLenum type;
vector<string> sources;
vector<string> includepaths;
vector<uint32_t> spirv;
ShaderReflection reflection;
GLuint prog;
};
+10
View File
@@ -64,6 +64,16 @@
<ClCompile Include="wrappers\gl_texture_funcs.cpp" />
<ClCompile Include="wrappers\gl_uniform_funcs.cpp" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\shaders\spirv\renderdoc_spirv.vcxproj">
<Project>{0aae0ad1-371b-4a36-9ed1-80e10e960605}</Project>
<Private>false</Private>
<ReferenceOutputAssembly>true</ReferenceOutputAssembly>
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
<LinkLibraryDependencies>false</LinkLibraryDependencies>
<UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>
</ProjectReference>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{F92FCDA6-A261-4EEC-9CD0-73A11FBCC459}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
@@ -28,6 +28,8 @@
#include "../gl_driver.h"
#include "../gl_shader_refl.h"
#include "driver/shaders/spirv/spirv_common.h"
#pragma region Shaders
bool WrappedOpenGL::Serialise_glCreateShader(GLuint shader, GLenum type)
@@ -165,7 +167,13 @@ bool WrappedOpenGL::Serialise_glCompileShader(GLuint shader)
{
shadDetails.prog = sepProg;
MakeShaderReflection(m_Real, shadDetails.type, sepProg, shadDetails.reflection, pointSizeUsed, clipDistanceUsed);
string s = CompileSPIRV(SPIRVShaderStage(ShaderIdx(shadDetails.type)), shadDetails.sources, shadDetails.spirv);
if(!shadDetails.spirv.empty())
DisassembleSPIRV(SPIRVShaderStage(ShaderIdx(shadDetails.type)), shadDetails.spirv, s);
shadDetails.reflection.Disassembly = s;
create_array_uninit(shadDetails.reflection.DebugInfo.files, shadDetails.sources.size());
for(size_t i=0; i < shadDetails.sources.size(); i++)
{
@@ -356,6 +364,12 @@ bool WrappedOpenGL::Serialise_glCreateShaderProgramv(GLuint program, GLenum type
shadDetails.prog = sepprog;
MakeShaderReflection(m_Real, Type, real, shadDetails.reflection, pointSizeUsed, clipDistanceUsed);
string s = CompileSPIRV(SPIRVShaderStage(ShaderIdx(shadDetails.type)), shadDetails.sources, shadDetails.spirv);
if(!shadDetails.spirv.empty())
DisassembleSPIRV(SPIRVShaderStage(ShaderIdx(shadDetails.type)), shadDetails.spirv, s);
shadDetails.reflection.Disassembly = s;
create_array_uninit(shadDetails.reflection.DebugInfo.files, shadDetails.sources.size());
for(size_t i=0; i < shadDetails.sources.size(); i++)
{
@@ -1162,6 +1176,12 @@ bool WrappedOpenGL::Serialise_glCompileShaderIncludeARB(GLuint shader, GLsizei c
shadDetails.prog = sepProg;
MakeShaderReflection(m_Real, shadDetails.type, sepProg, shadDetails.reflection, pointSizeUsed, clipDistanceUsed);
string s = CompileSPIRV(SPIRVShaderStage(ShaderIdx(shadDetails.type)), shadDetails.sources, shadDetails.spirv);
if(!shadDetails.spirv.empty())
DisassembleSPIRV(SPIRVShaderStage(ShaderIdx(shadDetails.type)), shadDetails.spirv, s);
shadDetails.reflection.Disassembly = s;
create_array_uninit(shadDetails.reflection.DebugInfo.files, shadDetails.sources.size());
for(size_t i=0; i < shadDetails.sources.size(); i++)
{
+80
View File
@@ -0,0 +1,80 @@
CC=gcc
CPP=g++
COMMIT=`git rev-parse HEAD`
MACROS=-DLINUX \
-DRENDERDOC_PLATFORM=linux \
-DRENDERDOC_EXPORTS \
-DGIT_COMMIT_HASH="\"$(COMMIT)\""
CFLAGS=-c -Wall -Werror -Wno-unused -Wno-unknown-pragmas -fPIC $(MACROS) -I../../../ -I../../../3rdparty/
CPPFLAGS=-std=c++11 -g -Wno-reorder -fvisibility=hidden -fvisibility-inlines-hidden
LDFLAGS=-lpthread -lrt -shared -ldl -lX11
OBJDIR=.obj
VPATH=../../../3rdparty
# VPATH above takes care of finding these within the 3rdparty directory
GLSLANG_OBJECTS=glslang/OGLCompilersDLL/InitializeDll.o \
glslang/SPIRV/GlslangToSpv.o \
glslang/SPIRV/SpvBuilder.o \
glslang/glslang/GenericCodeGen/CodeGen.o \
glslang/glslang/GenericCodeGen/Link.o \
glslang/glslang/MachineIndependent/Constant.o \
glslang/glslang/MachineIndependent/glslang_tab.o \
glslang/glslang/MachineIndependent/InfoSink.o \
glslang/glslang/MachineIndependent/Initialize.o \
glslang/glslang/MachineIndependent/Intermediate.o \
glslang/glslang/MachineIndependent/intermOut.o \
glslang/glslang/MachineIndependent/IntermTraverse.o \
glslang/glslang/MachineIndependent/limits.o \
glslang/glslang/MachineIndependent/linkValidate.o \
glslang/glslang/MachineIndependent/parseConst.o \
glslang/glslang/MachineIndependent/ParseHelper.o \
glslang/glslang/MachineIndependent/PoolAlloc.o \
glslang/glslang/MachineIndependent/reflection.o \
glslang/glslang/MachineIndependent/RemoveTree.o \
glslang/glslang/MachineIndependent/Scan.o \
glslang/glslang/MachineIndependent/ShaderLang.o \
glslang/glslang/MachineIndependent/SymbolTable.o \
glslang/glslang/MachineIndependent/Versions.o \
glslang/glslang/MachineIndependent/preprocessor/Pp.o \
glslang/glslang/MachineIndependent/preprocessor/PpAtom.o \
glslang/glslang/MachineIndependent/preprocessor/PpContext.o \
glslang/glslang/MachineIndependent/preprocessor/PpMemory.o \
glslang/glslang/MachineIndependent/preprocessor/PpScanner.o \
glslang/glslang/MachineIndependent/preprocessor/PpSymbols.o \
glslang/glslang/MachineIndependent/preprocessor/PpTokens.o \
glslang/glslang/OSDependent/Linux/ossource.o
OBJECTS=spirv_common.o \
spirv_compile.o \
spirv_disassemble.o \
$(GLSLANG_OBJECTS)
.PHONY: all
all: rdoc_spirv.a
# glslang needs -Wno-error added :(
GLSLANG_OBJDIR_OBJECTS=$(addprefix $(OBJDIR)/, $(GLSLANG_OBJECTS))
$(GLSLANG_OBJDIR_OBJECTS): CPPFLAGS += -Wno-error
$(OBJDIR)/%.o: %.cpp
@mkdir -p $$(dirname $@)
$(CPP) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
@$(CPP) $(CFLAGS) $(CPPFLAGS) -MM -MT $(OBJDIR)/$*.o $< > $(OBJDIR)/$*.d
$(OBJDIR)/%.o: %.c
@mkdir -p $$(dirname $@)
$(CC) $(CFLAGS) -c -o $@ $<
@$(CC) $(CFLAGS) -MM -MT $(OBJDIR)/$*.o $< > $(OBJDIR)/$*.d
OBJDIR_OBJECTS=$(addprefix $(OBJDIR)/, $(OBJECTS))
-include $(OBJDIR_OBJECTS:.o=.d)
rdoc_spirv.a: $(OBJDIR_OBJECTS)
ar rcs rdoc_spirv.a $(OBJDIR_OBJECTS)
.PHONY: clean
clean:
rm -rf rdoc_spirv.a $(OBJDIR)
@@ -0,0 +1,266 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Profile|Win32">
<Configuration>Profile</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Profile|x64">
<Configuration>Profile</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\GenericCodeGen\CodeGen.cpp" />
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\GenericCodeGen\Link.cpp" />
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\Constant.cpp" />
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\glslang_tab.cpp" />
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\InfoSink.cpp" />
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\Initialize.cpp" />
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\Intermediate.cpp" />
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\intermOut.cpp" />
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\IntermTraverse.cpp" />
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\limits.cpp" />
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\linkValidate.cpp" />
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\parseConst.cpp" />
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\ParseHelper.cpp" />
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\PoolAlloc.cpp" />
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\preprocessor\Pp.cpp" />
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\preprocessor\PpAtom.cpp" />
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\preprocessor\PpContext.cpp" />
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\preprocessor\PpMemory.cpp" />
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\preprocessor\PpScanner.cpp" />
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\preprocessor\PpSymbols.cpp" />
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\preprocessor\PpTokens.cpp" />
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\reflection.cpp" />
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\RemoveTree.cpp" />
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\Scan.cpp" />
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\ShaderLang.cpp" />
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\SymbolTable.cpp" />
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\Versions.cpp" />
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\OSDependent\Linux\ossource.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\OSDependent\Windows\ossource.cpp" />
<ClCompile Include="..\..\..\3rdparty\glslang\OGLCompilersDLL\InitializeDll.cpp" />
<ClCompile Include="..\..\..\3rdparty\glslang\SPIRV\GlslangToSpv.cpp" />
<ClCompile Include="..\..\..\3rdparty\glslang\SPIRV\SpvBuilder.cpp" />
<ClCompile Include="spirv_common.cpp" />
<ClCompile Include="spirv_compile.cpp" />
<ClCompile Include="spirv_disassemble.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\Include\arrays.h" />
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\Include\BaseTypes.h" />
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\Include\Common.h" />
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\Include\ConstantUnion.h" />
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\Include\InfoSink.h" />
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\Include\InitializeGlobals.h" />
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\Include\intermediate.h" />
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\Include\PoolAlloc.h" />
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\Include\ResourceLimits.h" />
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\Include\revision.h" />
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\Include\ShHandle.h" />
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\Include\Types.h" />
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\glslang_tab.cpp.h" />
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\gl_types.h" />
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\Initialize.h" />
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\localintermediate.h" />
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\ParseHelper.h" />
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\preprocessor\PpContext.h" />
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\preprocessor\PpTokens.h" />
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\reflection.h" />
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\RemoveTree.h" />
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\Scan.h" />
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\ScanContext.h" />
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\SymbolTable.h" />
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\Versions.h" />
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\OSDependent\Linux\osinclude.h" />
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\OSDependent\osinclude.h" />
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\OSDependent\Windows\osinclude.h" />
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\Public\ShaderLang.h" />
<ClInclude Include="..\..\..\3rdparty\glslang\OGLCompilersDLL\InitializeDll.h" />
<ClInclude Include="..\..\..\3rdparty\glslang\SPIRV\GLSL450Lib.h" />
<ClInclude Include="..\..\..\3rdparty\glslang\SPIRV\GlslangToSpv.h" />
<ClInclude Include="..\..\..\3rdparty\glslang\SPIRV\spirv.h" />
<ClInclude Include="..\..\..\3rdparty\glslang\SPIRV\SpvBuilder.h" />
<ClInclude Include="..\..\..\3rdparty\glslang\SPIRV\spvIR.h" />
<ClInclude Include="spirv_common.h" />
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{0AAE0AD1-371B-4A36-9ED1-80E10E960605}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>renderdoc_spirv</RootNamespace>
<ProjectName>spirv</ProjectName>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|x64'" Label="PropertySheets">
<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 Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<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)'=='Release|Win32'">
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<IntDir>$(Platform)\$(Configuration)\</IntDir>
<ExecutablePath>$(ProgramFiles)\Windows Kits\8.1\bin\x86;$(ExecutablePath)</ExecutablePath>
<IncludePath>$(ProgramFiles)\Windows Kits\8.1\Debuggers\inc;$(ProgramFiles)\Windows Kits\8.1\Include\um;$(ProgramFiles)\Windows Kits\8.1\Include\shared;$(VSInstallDir)\DIA SDK\include;$(SolutionDir)\breakpad;$(IncludePath)</IncludePath>
<LibraryPath>$(ProgramFiles)\Windows Kits\8.1\lib\win8\um\x86;$(LibraryPath)</LibraryPath>
<ExcludePath>$(ProgramFiles)\Windows Kits\8.1\Include\um;$(ProgramFiles)\Windows Kits\8.1\Include\shared;$(ExcludePath)</ExcludePath>
<TargetName>$(ProjectName)</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<IntDir>$(Platform)\$(Configuration)\</IntDir>
<ExecutablePath>$(ProgramFiles)\Windows Kits\8.1\bin\x86;$(ExecutablePath)</ExecutablePath>
<LibraryPath>$(ProgramFiles)\Windows Kits\8.1\lib\win8\um\x86;$(LibraryPath)</LibraryPath>
<IncludePath>$(ProgramFiles)\Windows Kits\8.1\Debuggers\inc;$(ProgramFiles)\Windows Kits\8.1\Include\um;$(ProgramFiles)\Windows Kits\8.1\Include\shared;$(VSInstallDir)\DIA SDK\include;$(SolutionDir)\breakpad;$(IncludePath)</IncludePath>
<ExcludePath>$(ProgramFiles)\Windows Kits\8.1\Include\um;$(ProgramFiles)\Windows Kits\8.1\Include\shared;$(ExcludePath)</ExcludePath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|x64'">
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<IntDir>$(Platform)\$(Configuration)\</IntDir>
<ExecutablePath>$(ProgramFiles)\Windows Kits\8.1\bin;$(ExecutablePath)</ExecutablePath>
<IncludePath>$(ProgramFiles)\Windows Kits\8.1\Debuggers\inc;$(ProgramFiles)\Windows Kits\8.1\Include\um;$(ProgramFiles)\Windows Kits\8.1\Include\shared;$(VSInstallDir)\DIA SDK\include;$(SolutionDir)\breakpad;$(IncludePath)</IncludePath>
<LibraryPath>$(ProgramFiles)\Windows Kits\8.1\lib\win8\um\x64;$(LibraryPath)</LibraryPath>
<ExcludePath>$(ProgramFiles)\Windows Kits\8.1\Include\um;$(ProgramFiles)\Windows Kits\8.1\Include\shared;$(ExcludePath)</ExcludePath>
<TargetName>$(ProjectName)</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<IntDir>$(Platform)\$(Configuration)\</IntDir>
<ExecutablePath>$(ProgramFiles)\Windows Kits\8.1\bin;$(ExecutablePath)</ExecutablePath>
<IncludePath>$(ProgramFiles)\Windows Kits\8.1\Debuggers\inc;$(ProgramFiles)\Windows Kits\8.1\Include\um;$(ProgramFiles)\Windows Kits\8.1\Include\shared;$(VSInstallDir)\DIA SDK\include;$(SolutionDir)\breakpad;$(IncludePath)</IncludePath>
<LibraryPath>$(ProgramFiles)\Windows Kits\8.1\lib\win8\um\x64;$(LibraryPath)</LibraryPath>
<ExcludePath>$(ProgramFiles)\Windows Kits\8.1\Include\um;$(ProgramFiles)\Windows Kits\8.1\Include\shared;$(ExcludePath)</ExcludePath>
<TargetName>$(ProjectName)</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">
<ExecutablePath>$(ProgramFiles)\Windows Kits\8.1\bin\x86;$(ExecutablePath)</ExecutablePath>
<IncludePath>$(ProgramFiles)\Windows Kits\8.1\Debuggers\inc;$(ProgramFiles)\Windows Kits\8.1\Include\um;$(ProgramFiles)\Windows Kits\8.1\Include\shared;$(VSInstallDir)\DIA SDK\include;$(SolutionDir)\breakpad;$(IncludePath)</IncludePath>
<LibraryPath>$(ProgramFiles)\Windows Kits\8.1\lib\win8\um\x86;$(LibraryPath)</LibraryPath>
<ExcludePath>$(ProgramFiles)\Windows Kits\8.1\Include\um;$(ProgramFiles)\Windows Kits\8.1\Include\shared;$(ExcludePath)</ExcludePath>
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<IntDir>$(Platform)\$(Configuration)\</IntDir>
<TargetName>$(ProjectName)</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>RENDERDOC_EXPORTS;RENDERDOC_PLATFORM=win32;WIN64;WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(SolutionDir)renderdoc\;$(SolutionDir)renderdoc\3rdparty\</AdditionalIncludeDirectories>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|x64'">
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>RENDERDOC_EXPORTS;RENDERDOC_PLATFORM=win32;WIN64;WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(SolutionDir)renderdoc\;$(SolutionDir)renderdoc\3rdparty\</AdditionalIncludeDirectories>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>RENDERDOC_EXPORTS;RENDERDOC_PLATFORM=win32;WIN64;WIN32;RELEASE;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(SolutionDir)renderdoc\;$(SolutionDir)renderdoc\3rdparty\</AdditionalIncludeDirectories>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>RENDERDOC_EXPORTS;RENDERDOC_PLATFORM=win32;USE_BREAKPAD;WIN64;WIN32;RELEASE;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(SolutionDir)renderdoc\;$(SolutionDir)renderdoc\3rdparty\</AdditionalIncludeDirectories>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<AdditionalIncludeDirectories>$(SolutionDir)renderdoc\;$(SolutionDir)renderdoc\3rdparty\</AdditionalIncludeDirectories>
<PreprocessorDefinitions>RENDERDOC_EXPORTS;RENDERDOC_PLATFORM=win32;WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
</ClCompile>
</ItemDefinitionGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
@@ -0,0 +1,220 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="3rdparty">
<UniqueIdentifier>{4aaae50a-4e0a-40b2-964d-5bfeae6f287f}</UniqueIdentifier>
</Filter>
<Filter Include="3rdparty\glslang">
<UniqueIdentifier>{e27da9c0-fc84-4bda-a7ed-f0d6a6e1e214}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\3rdparty\glslang\OGLCompilersDLL\InitializeDll.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="..\..\..\3rdparty\glslang\SPIRV\GlslangToSpv.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="..\..\..\3rdparty\glslang\SPIRV\SpvBuilder.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\GenericCodeGen\CodeGen.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\GenericCodeGen\Link.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\Constant.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\glslang_tab.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\InfoSink.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\Initialize.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\Intermediate.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\intermOut.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\IntermTraverse.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\limits.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\linkValidate.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\parseConst.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\ParseHelper.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\PoolAlloc.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\reflection.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\RemoveTree.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\Scan.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\ShaderLang.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\SymbolTable.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\Versions.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\preprocessor\Pp.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\preprocessor\PpAtom.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\preprocessor\PpContext.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\preprocessor\PpMemory.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\preprocessor\PpScanner.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\preprocessor\PpSymbols.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\preprocessor\PpTokens.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\OSDependent\Windows\ossource.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="..\..\..\3rdparty\glslang\glslang\OSDependent\Linux\ossource.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="spirv_compile.cpp" />
<ClCompile Include="spirv_disassemble.cpp" />
<ClCompile Include="spirv_common.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\3rdparty\glslang\OGLCompilersDLL\InitializeDll.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="..\..\..\3rdparty\glslang\SPIRV\GLSL450Lib.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="..\..\..\3rdparty\glslang\SPIRV\GlslangToSpv.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="..\..\..\3rdparty\glslang\SPIRV\spirv.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="..\..\..\3rdparty\glslang\SPIRV\SpvBuilder.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="..\..\..\3rdparty\glslang\SPIRV\spvIR.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\Include\arrays.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\Include\BaseTypes.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\Include\Common.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\Include\ConstantUnion.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\Include\InfoSink.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\Include\InitializeGlobals.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\Include\intermediate.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\Include\PoolAlloc.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\Include\ResourceLimits.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\Include\revision.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\Include\ShHandle.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\Include\Types.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\gl_types.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\glslang_tab.cpp.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\Initialize.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\localintermediate.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\ParseHelper.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\reflection.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\RemoveTree.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\Scan.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\ScanContext.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\SymbolTable.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\Versions.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\preprocessor\PpContext.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\MachineIndependent\preprocessor\PpTokens.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\OSDependent\osinclude.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\OSDependent\Windows\osinclude.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\OSDependent\Linux\osinclude.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="..\..\..\3rdparty\glslang\glslang\Public\ShaderLang.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="spirv_common.h" />
</ItemGroup>
</Project>
@@ -0,0 +1,49 @@
/******************************************************************************
* The MIT License (MIT)
*
* Copyright (c) 2015 Baldur Karlsson
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
******************************************************************************/
#include "spirv_common.h"
#undef min
#undef max
#include "3rdparty/glslang/glslang/Public/ShaderLang.h"
static bool inited = false;
void InitSPIRVCompiler()
{
if(!inited)
{
glslang::InitializeProcess();
inited = true;
}
}
void ShutdownSPIRVCompiler()
{
if(inited)
{
glslang::FinalizeProcess();
}
}
@@ -0,0 +1,47 @@
/******************************************************************************
* The MIT License (MIT)
*
* Copyright (c) 2015 Baldur Karlsson
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
******************************************************************************/
#include <vector>
#include <string>
using std::string;
using std::vector;
#include <stdint.h>
enum SPIRVShaderStage
{
eSPIRVVertex,
eSPIRVTessControl,
eSPIRVTessEvaluation,
eSPIRVGeometry,
eSPIRVFragment,
eSPIRVCompute,
eSPIRVInvalid,
};
void InitSPIRVCompiler();
void ShutdownSPIRVCompiler();
string CompileSPIRV(SPIRVShaderStage shadType, const vector<string> &sources, vector<uint32_t> &spirv);
void DisassembleSPIRV(SPIRVShaderStage shadType, const vector<uint32_t> &spirv, string &disasm);
@@ -0,0 +1,205 @@
/******************************************************************************
* The MIT License (MIT)
*
* Copyright (c) 2015 Baldur Karlsson
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
******************************************************************************/
#include "common/common.h"
#include "spirv_common.h"
#undef min
#undef max
#include "3rdparty/glslang/SPIRV/GlslangToSpv.h"
#include "3rdparty/glslang/glslang/Public/ShaderLang.h"
TBuiltInResource DefaultResources =
{
/*.maxLights =*/ 32,
/*.maxClipPlanes =*/ 6,
/*.maxTextureUnits =*/ 32,
/*.maxTextureCoords =*/ 32,
/*.maxVertexAttribs =*/ 64,
/*.maxVertexUniformComponents =*/ 4096,
/*.maxVaryingFloats =*/ 64,
/*.maxVertexTextureImageUnits =*/ 32,
/*.maxCombinedTextureImageUnits =*/ 80,
/*.maxTextureImageUnits =*/ 32,
/*.maxFragmentUniformComponents =*/ 4096,
/*.maxDrawBuffers =*/ 32,
/*.maxVertexUniformVectors =*/ 128,
/*.maxVaryingVectors =*/ 8,
/*.maxFragmentUniformVectors =*/ 16,
/*.maxVertexOutputVectors =*/ 16,
/*.maxFragmentInputVectors =*/ 15,
/*.minProgramTexelOffset =*/ -8,
/*.maxProgramTexelOffset =*/ 7,
/*.maxClipDistances =*/ 8,
/*.maxComputeWorkGroupCountX =*/ 65535,
/*.maxComputeWorkGroupCountY =*/ 65535,
/*.maxComputeWorkGroupCountZ =*/ 65535,
/*.maxComputeWorkGroupSizeX =*/ 1024,
/*.maxComputeWorkGroupSizeY =*/ 1024,
/*.maxComputeWorkGroupSizeZ =*/ 64,
/*.maxComputeUniformComponents =*/ 1024,
/*.maxComputeTextureImageUnits =*/ 16,
/*.maxComputeImageUniforms =*/ 8,
/*.maxComputeAtomicCounters =*/ 8,
/*.maxComputeAtomicCounterBuffers =*/ 1,
/*.maxVaryingComponents =*/ 60,
/*.maxVertexOutputComponents =*/ 64,
/*.maxGeometryInputComponents =*/ 64,
/*.maxGeometryOutputComponents =*/ 128,
/*.maxFragmentInputComponents =*/ 128,
/*.maxImageUnits =*/ 8,
/*.maxCombinedImageUnitsAndFragmentOutputs =*/ 8,
/*.maxCombinedShaderOutputResources =*/ 8,
/*.maxImageSamples =*/ 0,
/*.maxVertexImageUniforms =*/ 0,
/*.maxTessControlImageUniforms =*/ 0,
/*.maxTessEvaluationImageUniforms =*/ 0,
/*.maxGeometryImageUniforms =*/ 0,
/*.maxFragmentImageUniforms =*/ 8,
/*.maxCombinedImageUniforms =*/ 8,
/*.maxGeometryTextureImageUnits =*/ 16,
/*.maxGeometryOutputVertices =*/ 256,
/*.maxGeometryTotalOutputComponents =*/ 1024,
/*.maxGeometryUniformComponents =*/ 1024,
/*.maxGeometryVaryingComponents =*/ 64,
/*.maxTessControlInputComponents =*/ 128,
/*.maxTessControlOutputComponents =*/ 128,
/*.maxTessControlTextureImageUnits =*/ 16,
/*.maxTessControlUniformComponents =*/ 1024,
/*.maxTessControlTotalOutputComponents =*/ 4096,
/*.maxTessEvaluationInputComponents =*/ 128,
/*.maxTessEvaluationOutputComponents =*/ 128,
/*.maxTessEvaluationTextureImageUnits =*/ 16,
/*.maxTessEvaluationUniformComponents =*/ 1024,
/*.maxTessPatchComponents =*/ 120,
/*.maxPatchVertices =*/ 32,
/*.maxTessGenLevel =*/ 64,
/*.maxViewports =*/ 16,
/*.maxVertexAtomicCounters =*/ 0,
/*.maxTessControlAtomicCounters =*/ 0,
/*.maxTessEvaluationAtomicCounters =*/ 0,
/*.maxGeometryAtomicCounters =*/ 0,
/*.maxFragmentAtomicCounters =*/ 8,
/*.maxCombinedAtomicCounters =*/ 8,
/*.maxAtomicCounterBindings =*/ 1,
/*.maxVertexAtomicCounterBuffers =*/ 0,
/*.maxTessControlAtomicCounterBuffers =*/ 0,
/*.maxTessEvaluationAtomicCounterBuffers =*/ 0,
/*.maxGeometryAtomicCounterBuffers =*/ 0,
/*.maxFragmentAtomicCounterBuffers =*/ 1,
/*.maxCombinedAtomicCounterBuffers =*/ 1,
/*.maxAtomicCounterBufferSize =*/ 16384,
/*.maxTransformFeedbackBuffers =*/ 4,
/*.maxTransformFeedbackInterleavedComponents =*/ 64,
/*.maxCullDistances =*/ 8,
/*.maxCombinedClipAndCullDistances =*/ 8,
/*.maxSamples =*/ 4,
/*.limits*/
{
/*.limits.nonInductiveForLoops =*/ 1,
/*.limits.whileLoops =*/ 1,
/*.limits.doWhileLoops =*/ 1,
/*.limits.generalUniformIndexing =*/ 1,
/*.limits.generalAttributeMatrixVectorIndexing =*/ 1,
/*.limits.generalVaryingIndexing =*/ 1,
/*.limits.generalSamplerIndexing =*/ 1,
/*.limits.generalVariableIndexing =*/ 1,
/*.limits.generalConstantMatrixVectorIndexing =*/ 1,
},
};
string CompileSPIRV(SPIRVShaderStage shadType, const std::vector<std::string> &sources, vector<uint32_t> &spirv)
{
if(shadType >= eSPIRVInvalid)
return "Invalid shader stage specified";
string errors = "";
const char **strs = new const char *[sources.size()];
for(size_t i=0; i < sources.size(); i++)
strs[i] = sources[i].c_str();
RDCCOMPILE_ASSERT(
(int)EShLangVertex == (int)eSPIRVVertex &&
(int)EShLangTessControl == (int)eSPIRVTessControl &&
(int)EShLangTessEvaluation == (int)eSPIRVTessEvaluation &&
(int)EShLangGeometry == (int)eSPIRVGeometry &&
(int)EShLangCompute == (int)eSPIRVCompute,
"Shader language enums don't match");
{
EShLanguage lang = EShLanguage(shadType);
glslang::TShader *shader = new glslang::TShader(lang);
shader->setStrings(strs, (int)sources.size());
bool success = shader->parse(&DefaultResources, 110, false, EShMsgDefault);
if(!success)
{
errors = "Shader failed to compile:\n\n";
errors += shader->getInfoLog();
errors += "\n\n";
errors += shader->getInfoDebugLog();
}
else
{
glslang::TProgram *program = new glslang::TProgram();
program->addShader(shader);
success = program->link(EShMsgDefault);
if(!success)
{
errors = "Program failed to link:\n\n";
errors += program->getInfoLog();
errors += "\n\n";
errors += program->getInfoDebugLog();
}
else
{
glslang::TIntermediate *intermediate = program->getIntermediate(lang);
// if we successfully compiled and linked, we must have the stage we started with
RDCASSERT(intermediate);
glslang::GlslangToSpv(*intermediate, spirv);
}
delete program;
}
delete shader;
}
delete[] strs;
return errors;
}
@@ -0,0 +1,55 @@
/******************************************************************************
* The MIT License (MIT)
*
* Copyright (c) 2015 Baldur Karlsson
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
******************************************************************************/
#include "common/common.h"
#include "spirv_common.h"
#undef min
#undef max
#include "3rdparty/glslang/SPIRV/GlslangToSpv.h"
#include "3rdparty/glslang/glslang/Public/ShaderLang.h"
void DisassembleSPIRV(SPIRVShaderStage shadType, const vector<uint32_t> &spirv, string &disasm)
{
if(shadType >= eSPIRVInvalid)
return;
// temporary function until we build our own structure from the SPIR-V
const char *header[] = {
"Vertex Shader",
"Tessellation Control Shader",
"Tessellation Evaluation Shader",
"Geometry Shader",
"Fragment Shader",
"Compute Shader",
};
disasm = header[(int)shadType];
disasm += " SPIR-V raw stream:\n\n";
for(size_t i=0; i < spirv.size(); i++)
disasm += StringFormat::Fmt(" %08x\n", spirv[i]);
}
-63
View File
@@ -220,38 +220,6 @@
</ProjectReference>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="3rdparty\glslang\glslang\Include\BaseTypes.h" />
<ClInclude Include="3rdparty\glslang\glslang\Include\Common.h" />
<ClInclude Include="3rdparty\glslang\glslang\Include\ConstantUnion.h" />
<ClInclude Include="3rdparty\glslang\glslang\Include\InfoSink.h" />
<ClInclude Include="3rdparty\glslang\glslang\Include\InitializeGlobals.h" />
<ClInclude Include="3rdparty\glslang\glslang\Include\intermediate.h" />
<ClInclude Include="3rdparty\glslang\glslang\Include\PoolAlloc.h" />
<ClInclude Include="3rdparty\glslang\glslang\Include\ResourceLimits.h" />
<ClInclude Include="3rdparty\glslang\glslang\Include\revision.h" />
<ClInclude Include="3rdparty\glslang\glslang\Include\ShHandle.h" />
<ClInclude Include="3rdparty\glslang\glslang\Include\Types.h" />
<ClInclude Include="3rdparty\glslang\glslang\MachineIndependent\glslang_tab.cpp.h" />
<ClInclude Include="3rdparty\glslang\glslang\MachineIndependent\gl_types.h" />
<ClInclude Include="3rdparty\glslang\glslang\MachineIndependent\Initialize.h" />
<ClInclude Include="3rdparty\glslang\glslang\MachineIndependent\localintermediate.h" />
<ClInclude Include="3rdparty\glslang\glslang\MachineIndependent\ParseHelper.h" />
<ClInclude Include="3rdparty\glslang\glslang\MachineIndependent\preprocessor\PpContext.h" />
<ClInclude Include="3rdparty\glslang\glslang\MachineIndependent\preprocessor\PpTokens.h" />
<ClInclude Include="3rdparty\glslang\glslang\MachineIndependent\reflection.h" />
<ClInclude Include="3rdparty\glslang\glslang\MachineIndependent\RemoveTree.h" />
<ClInclude Include="3rdparty\glslang\glslang\MachineIndependent\Scan.h" />
<ClInclude Include="3rdparty\glslang\glslang\MachineIndependent\ScanContext.h" />
<ClInclude Include="3rdparty\glslang\glslang\MachineIndependent\SymbolTable.h" />
<ClInclude Include="3rdparty\glslang\glslang\MachineIndependent\Versions.h" />
<ClInclude Include="3rdparty\glslang\glslang\OSDependent\Windows\osinclude.h" />
<ClInclude Include="3rdparty\glslang\glslang\Public\ShaderLang.h" />
<ClInclude Include="3rdparty\glslang\OGLCompilersDLL\InitializeDll.h" />
<ClInclude Include="3rdparty\glslang\SPIRV\GLSL450Lib.h" />
<ClInclude Include="3rdparty\glslang\SPIRV\GlslangToSpv.h" />
<ClInclude Include="3rdparty\glslang\SPIRV\spirv.h" />
<ClInclude Include="3rdparty\glslang\SPIRV\SpvBuilder.h" />
<ClInclude Include="3rdparty\glslang\SPIRV\spvIR.h" />
<ClInclude Include="3rdparty\jpeg-compressor\jpgd.h" />
<ClInclude Include="3rdparty\jpeg-compressor\jpge.h" />
<ClInclude Include="3rdparty\lz4\lz4.h" />
@@ -303,37 +271,6 @@
<ClInclude Include="serialise\string_utils.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="3rdparty\glslang\glslang\GenericCodeGen\CodeGen.cpp" />
<ClCompile Include="3rdparty\glslang\glslang\GenericCodeGen\Link.cpp" />
<ClCompile Include="3rdparty\glslang\glslang\MachineIndependent\Constant.cpp" />
<ClCompile Include="3rdparty\glslang\glslang\MachineIndependent\glslang_tab.cpp" />
<ClCompile Include="3rdparty\glslang\glslang\MachineIndependent\InfoSink.cpp" />
<ClCompile Include="3rdparty\glslang\glslang\MachineIndependent\Initialize.cpp" />
<ClCompile Include="3rdparty\glslang\glslang\MachineIndependent\Intermediate.cpp" />
<ClCompile Include="3rdparty\glslang\glslang\MachineIndependent\intermOut.cpp" />
<ClCompile Include="3rdparty\glslang\glslang\MachineIndependent\IntermTraverse.cpp" />
<ClCompile Include="3rdparty\glslang\glslang\MachineIndependent\limits.cpp" />
<ClCompile Include="3rdparty\glslang\glslang\MachineIndependent\linkValidate.cpp" />
<ClCompile Include="3rdparty\glslang\glslang\MachineIndependent\parseConst.cpp" />
<ClCompile Include="3rdparty\glslang\glslang\MachineIndependent\ParseHelper.cpp" />
<ClCompile Include="3rdparty\glslang\glslang\MachineIndependent\PoolAlloc.cpp" />
<ClCompile Include="3rdparty\glslang\glslang\MachineIndependent\preprocessor\Pp.cpp" />
<ClCompile Include="3rdparty\glslang\glslang\MachineIndependent\preprocessor\PpAtom.cpp" />
<ClCompile Include="3rdparty\glslang\glslang\MachineIndependent\preprocessor\PpContext.cpp" />
<ClCompile Include="3rdparty\glslang\glslang\MachineIndependent\preprocessor\PpMemory.cpp" />
<ClCompile Include="3rdparty\glslang\glslang\MachineIndependent\preprocessor\PpScanner.cpp" />
<ClCompile Include="3rdparty\glslang\glslang\MachineIndependent\preprocessor\PpSymbols.cpp" />
<ClCompile Include="3rdparty\glslang\glslang\MachineIndependent\preprocessor\PpTokens.cpp" />
<ClCompile Include="3rdparty\glslang\glslang\MachineIndependent\reflection.cpp" />
<ClCompile Include="3rdparty\glslang\glslang\MachineIndependent\RemoveTree.cpp" />
<ClCompile Include="3rdparty\glslang\glslang\MachineIndependent\Scan.cpp" />
<ClCompile Include="3rdparty\glslang\glslang\MachineIndependent\ShaderLang.cpp" />
<ClCompile Include="3rdparty\glslang\glslang\MachineIndependent\SymbolTable.cpp" />
<ClCompile Include="3rdparty\glslang\glslang\MachineIndependent\Versions.cpp" />
<ClCompile Include="3rdparty\glslang\glslang\OSDependent\Windows\ossource.cpp" />
<ClCompile Include="3rdparty\glslang\OGLCompilersDLL\InitializeDll.cpp" />
<ClCompile Include="3rdparty\glslang\SPIRV\GlslangToSpv.cpp" />
<ClCompile Include="3rdparty\glslang\SPIRV\SpvBuilder.cpp" />
<ClCompile Include="3rdparty\jpeg-compressor\jpgd.cpp" />
<ClCompile Include="3rdparty\jpeg-compressor\jpge.cpp" />
<ClCompile Include="3rdparty\lz4\lz4.c" />
-192
View File
@@ -70,9 +70,6 @@
<Filter Include="Hooks">
<UniqueIdentifier>{3e51a921-b167-4794-937d-e77573a928b8}</UniqueIdentifier>
</Filter>
<Filter Include="3rdparty\glslang">
<UniqueIdentifier>{cec343f1-e0e5-4168-8f0a-57314338c6c6}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="maths\camera.h">
@@ -222,102 +219,6 @@
<ClInclude Include="data\embedded_files.h">
<Filter>Resources</Filter>
</ClInclude>
<ClInclude Include="3rdparty\glslang\OGLCompilersDLL\InitializeDll.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="3rdparty\glslang\SPIRV\GLSL450Lib.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="3rdparty\glslang\SPIRV\GlslangToSpv.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="3rdparty\glslang\SPIRV\spirv.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="3rdparty\glslang\SPIRV\SpvBuilder.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="3rdparty\glslang\SPIRV\spvIR.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="3rdparty\glslang\glslang\Include\BaseTypes.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="3rdparty\glslang\glslang\Include\Common.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="3rdparty\glslang\glslang\Include\ConstantUnion.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="3rdparty\glslang\glslang\Include\InfoSink.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="3rdparty\glslang\glslang\Include\InitializeGlobals.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="3rdparty\glslang\glslang\Include\intermediate.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="3rdparty\glslang\glslang\Include\PoolAlloc.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="3rdparty\glslang\glslang\Include\ResourceLimits.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="3rdparty\glslang\glslang\Include\revision.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="3rdparty\glslang\glslang\Include\ShHandle.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="3rdparty\glslang\glslang\Include\Types.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="3rdparty\glslang\glslang\MachineIndependent\gl_types.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="3rdparty\glslang\glslang\MachineIndependent\glslang_tab.cpp.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="3rdparty\glslang\glslang\MachineIndependent\Initialize.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="3rdparty\glslang\glslang\MachineIndependent\localintermediate.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="3rdparty\glslang\glslang\MachineIndependent\ParseHelper.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="3rdparty\glslang\glslang\MachineIndependent\reflection.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="3rdparty\glslang\glslang\MachineIndependent\RemoveTree.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="3rdparty\glslang\glslang\MachineIndependent\Scan.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="3rdparty\glslang\glslang\MachineIndependent\ScanContext.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="3rdparty\glslang\glslang\MachineIndependent\SymbolTable.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="3rdparty\glslang\glslang\MachineIndependent\Versions.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="3rdparty\glslang\glslang\MachineIndependent\preprocessor\PpContext.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="3rdparty\glslang\glslang\MachineIndependent\preprocessor\PpTokens.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="3rdparty\glslang\glslang\OSDependent\Windows\osinclude.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
<ClInclude Include="3rdparty\glslang\glslang\Public\ShaderLang.h">
<Filter>3rdparty\glslang</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="maths\camera.cpp">
@@ -440,99 +341,6 @@
<ClCompile Include="os\win32\sys_win32_hooks.cpp">
<Filter>OS\Win32</Filter>
</ClCompile>
<ClCompile Include="3rdparty\glslang\OGLCompilersDLL\InitializeDll.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="3rdparty\glslang\SPIRV\GlslangToSpv.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="3rdparty\glslang\SPIRV\SpvBuilder.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="3rdparty\glslang\glslang\GenericCodeGen\CodeGen.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="3rdparty\glslang\glslang\GenericCodeGen\Link.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="3rdparty\glslang\glslang\MachineIndependent\Constant.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="3rdparty\glslang\glslang\MachineIndependent\glslang_tab.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="3rdparty\glslang\glslang\MachineIndependent\InfoSink.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="3rdparty\glslang\glslang\MachineIndependent\Initialize.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="3rdparty\glslang\glslang\MachineIndependent\Intermediate.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="3rdparty\glslang\glslang\MachineIndependent\intermOut.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="3rdparty\glslang\glslang\MachineIndependent\IntermTraverse.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="3rdparty\glslang\glslang\MachineIndependent\limits.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="3rdparty\glslang\glslang\MachineIndependent\linkValidate.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="3rdparty\glslang\glslang\MachineIndependent\parseConst.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="3rdparty\glslang\glslang\MachineIndependent\ParseHelper.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="3rdparty\glslang\glslang\MachineIndependent\PoolAlloc.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="3rdparty\glslang\glslang\MachineIndependent\reflection.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="3rdparty\glslang\glslang\MachineIndependent\RemoveTree.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="3rdparty\glslang\glslang\MachineIndependent\Scan.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="3rdparty\glslang\glslang\MachineIndependent\ShaderLang.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="3rdparty\glslang\glslang\MachineIndependent\SymbolTable.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="3rdparty\glslang\glslang\MachineIndependent\Versions.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="3rdparty\glslang\glslang\MachineIndependent\preprocessor\Pp.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="3rdparty\glslang\glslang\MachineIndependent\preprocessor\PpAtom.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="3rdparty\glslang\glslang\MachineIndependent\preprocessor\PpContext.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="3rdparty\glslang\glslang\MachineIndependent\preprocessor\PpMemory.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="3rdparty\glslang\glslang\MachineIndependent\preprocessor\PpScanner.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="3rdparty\glslang\glslang\MachineIndependent\preprocessor\PpSymbols.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="3rdparty\glslang\glslang\MachineIndependent\preprocessor\PpTokens.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
<ClCompile Include="3rdparty\glslang\glslang\OSDependent\Windows\ossource.cpp">
<Filter>3rdparty\glslang</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<None Include="os\win32\comexport.def">
+1 -1
View File
@@ -34,4 +34,4 @@ bin/renderdoccmd: $(OBJDIR_OBJECTS) ../renderdoc/librenderdoc.so
.PHONY: clean
clean:
rm -rf bin/renderdoccmd $(OBJDIR)
rm -rf bin/ $(OBJDIR)