mirror of
https://github.com/bkaradzic/bgfx.git
synced 2026-06-08 11:23:52 +00:00
shaderc HLSL profile switch fix (#3005)
* shaderc HLSL profile switch fix * shader makefiles changed to match new hlsl profile switches Co-authored-by: Ali Seyedof <ali.seyedof@xyzreality.com>
This commit is contained in:
@@ -30,11 +30,11 @@ vs_%.bin.h : vs_%.sc
|
||||
-@cat "$(SHADER_TMP)" >> $(@)
|
||||
-$(SILENT) $(SHADERC) $(VS_FLAGS) --platform linux -p spirv -f $(<) -o "$(SHADER_TMP)" --bin2c $(basename $(<))_spv
|
||||
-@cat "$(SHADER_TMP)" >> $(@)
|
||||
-$(SILENT) $(SHADERC) $(VS_FLAGS) --platform windows -p vs_3_0 -O 3 -f $(<) -o "$(SHADER_TMP)" --bin2c $(basename $(<))_dx9
|
||||
-$(SILENT) $(SHADERC) $(VS_FLAGS) --platform windows -p s_3_0 -O 3 -f $(<) -o "$(SHADER_TMP)" --bin2c $(basename $(<))_dx9
|
||||
-@cat "$(SHADER_TMP)" >> $(@)
|
||||
-$(SILENT) $(SHADERC) $(VS_FLAGS) --platform windows -p vs_4_0 -O 3 -f $(<) -o "$(SHADER_TMP)" --bin2c $(basename $(<))_dx11
|
||||
-$(SILENT) $(SHADERC) $(VS_FLAGS) --platform windows -p s_5_0 -O 3 -f $(<) -o "$(SHADER_TMP)" --bin2c $(basename $(<))_dx11
|
||||
-@cat "$(SHADER_TMP)" >> $(@)
|
||||
-$(SILENT) $(SHADERC) $(VS_FLAGS) --platform ios -p metal -O 3 -f $(<) -o "$(SHADER_TMP)" --bin2c $(basename $(<))_mtl
|
||||
-$(SILENT) $(SHADERC) $(VS_FLAGS) --platform ios -p metal -O 3 -f $(<) -o "$(SHADER_TMP)" --bin2c $(basename $(<))_mtl
|
||||
-@cat "$(SHADER_TMP)" >> $(@)
|
||||
-@printf "extern const uint8_t* $(basename $(<))_pssl;\n" | tr -d '\015' >> $(@)
|
||||
-@printf "extern const uint32_t $(basename $(<))_pssl_size;\n" | tr -d '\015' >> $(@)
|
||||
@@ -47,24 +47,24 @@ fs_%.bin.h : fs_%.sc
|
||||
-@cat "$(SHADER_TMP)" >> $(@)
|
||||
-$(SILENT) $(SHADERC) $(FS_FLAGS) --platform linux -p spirv -f $(<) -o "$(SHADER_TMP)" --bin2c $(basename $(<))_spv
|
||||
-@cat "$(SHADER_TMP)" >> $(@)
|
||||
-$(SILENT) $(SHADERC) $(FS_FLAGS) --platform windows -p ps_3_0 -O 3 -f $(<) -o "$(SHADER_TMP)" --bin2c $(basename $(<))_dx9
|
||||
-$(SILENT) $(SHADERC) $(FS_FLAGS) --platform windows -p s_3_0 -O 3 -f $(<) -o "$(SHADER_TMP)" --bin2c $(basename $(<))_dx9
|
||||
-@cat "$(SHADER_TMP)" >> $(@)
|
||||
-$(SILENT) $(SHADERC) $(FS_FLAGS) --platform windows -p ps_4_0 -O 3 -f $(<) -o "$(SHADER_TMP)" --bin2c $(basename $(<))_dx11
|
||||
-$(SILENT) $(SHADERC) $(FS_FLAGS) --platform windows -p s_5_0 -O 3 -f $(<) -o "$(SHADER_TMP)" --bin2c $(basename $(<))_dx11
|
||||
-@cat "$(SHADER_TMP)" >> $(@)
|
||||
-$(SILENT) $(SHADERC) $(FS_FLAGS) --platform ios -p metal -O 3 -f $(<) -o "$(SHADER_TMP)" --bin2c $(basename $(<))_mtl
|
||||
-$(SILENT) $(SHADERC) $(FS_FLAGS) --platform ios -p metal -O 3 -f $(<) -o "$(SHADER_TMP)" --bin2c $(basename $(<))_mtl
|
||||
-@cat "$(SHADER_TMP)" >> $(@)
|
||||
-@printf "extern const uint8_t* $(basename $(<))_pssl;\n" | tr -d '\015' >> $(@)
|
||||
-@printf "extern const uint32_t $(basename $(<))_pssl_size;\n" | tr -d '\015' >> $(@)
|
||||
|
||||
cs_%.bin.h : cs_%.sc
|
||||
@echo [$(<)]
|
||||
$(SILENT) $(SHADERC) $(CS_FLAGS) --platform linux -p 430 -f $(<) -o "$(SHADER_TMP)" --bin2c $(basename $(<))_glsl
|
||||
$(SILENT) $(SHADERC) $(CS_FLAGS) --platform linux -p 430 -f $(<) -o "$(SHADER_TMP)" --bin2c $(basename $(<))_glsl
|
||||
@cat "$(SHADER_TMP)" > $(@)
|
||||
-$(SILENT) $(SHADERC) $(CS_FLAGS) --platform android -f $(<) -o "$(SHADER_TMP)" --bin2c $(basename $(<))_essl
|
||||
-@cat "$(SHADER_TMP)" >> $(@)
|
||||
-$(SILENT) $(SHADERC) $(CS_FLAGS) --platform linux -p spirv -f $(<) -o "$(SHADER_TMP)" --bin2c $(basename $(<))_spv
|
||||
-@cat "$(SHADER_TMP)" >> $(@)
|
||||
-$(SILENT) $(SHADERC) $(CS_FLAGS) --platform windows -p cs_5_0 -O 1 -f $(<) -o "$(SHADER_TMP)" --bin2c $(basename $(<))_dx11
|
||||
-$(SILENT) $(SHADERC) $(CS_FLAGS) --platform windows -p s_5_0 -O 1 -f $(<) -o "$(SHADER_TMP)" --bin2c $(basename $(<))_dx11
|
||||
-@cat "$(SHADER_TMP)" >> $(@)
|
||||
-@printf "extern const uint8_t* $(basename $(<))_pssl;\n" | tr -d '\015' >> $(@)
|
||||
-@printf "extern const uint32_t $(basename $(<))_pssl_size;\n" | tr -d '\015' >> $(@)
|
||||
|
||||
@@ -53,14 +53,14 @@ else
|
||||
ADDITIONAL_INCLUDES?=
|
||||
|
||||
ifeq ($(TARGET), 0)
|
||||
VS_FLAGS=--platform windows -p vs_3_0 -O 3
|
||||
FS_FLAGS=--platform windows -p ps_3_0 -O 3
|
||||
VS_FLAGS=--platform windows -p s_3_0 -O 3
|
||||
FS_FLAGS=--platform windows -p s_3_0 -O 3
|
||||
SHADER_PATH=shaders/dx9
|
||||
else
|
||||
ifeq ($(TARGET), 1)
|
||||
VS_FLAGS=--platform windows -p vs_5_0 -O 3
|
||||
FS_FLAGS=--platform windows -p ps_5_0 -O 3
|
||||
CS_FLAGS=--platform windows -p cs_5_0 -O 1
|
||||
VS_FLAGS=--platform windows -p s_5_0 -O 3
|
||||
FS_FLAGS=--platform windows -p s_5_0 -O 3
|
||||
CS_FLAGS=--platform windows -p s_5_0 -O 1
|
||||
SHADER_PATH=shaders/dx11
|
||||
else
|
||||
ifeq ($(TARGET), 2)
|
||||
|
||||
@@ -563,6 +563,10 @@ namespace bgfx { namespace hlsl
|
||||
return false;
|
||||
}
|
||||
|
||||
char profileAndType[100] = {0};
|
||||
profileAndType[0] = (_options.shaderType == 'f') ? 'p' : _options.shaderType;
|
||||
bx::strCat(profileAndType, 100, profile);
|
||||
|
||||
s_compiler = load();
|
||||
|
||||
bool result = false;
|
||||
@@ -618,7 +622,7 @@ namespace bgfx { namespace hlsl
|
||||
, NULL
|
||||
, NULL
|
||||
, "main"
|
||||
, profile
|
||||
, profileAndType
|
||||
, flags
|
||||
, 0
|
||||
, &code
|
||||
@@ -677,7 +681,7 @@ namespace bgfx { namespace hlsl
|
||||
else
|
||||
{
|
||||
UniformNameList unusedUniforms;
|
||||
if (!getReflectionDataD3D11(code, profile[0] == 'v', uniforms, numAttrs, attrs, size, unusedUniforms) )
|
||||
if (!getReflectionDataD3D11(code, profileAndType[0] == 'v', uniforms, numAttrs, attrs, size, unusedUniforms) )
|
||||
{
|
||||
bx::printf("Error: Unable to get D3D11 reflection data.\n");
|
||||
goto error;
|
||||
@@ -736,7 +740,7 @@ namespace bgfx { namespace hlsl
|
||||
uint16_t count = (uint16_t)uniforms.size();
|
||||
bx::write(_writer, count, &err);
|
||||
|
||||
uint32_t fragmentBit = profile[0] == 'p' ? kUniformFragmentBit : 0;
|
||||
uint32_t fragmentBit = profileAndType[0] == 'p' ? kUniformFragmentBit : 0;
|
||||
for (UniformArray::const_iterator it = uniforms.begin(); it != uniforms.end(); ++it)
|
||||
{
|
||||
const Uniform& un = *it;
|
||||
|
||||
Reference in New Issue
Block a user