Skip to content

Commit 62c47b0

Browse files
committed
Update DDSView hlsl.cmd to match recent changes to CompileShaders
1 parent 3fb3c1e commit 62c47b0

11 files changed

+51
-36
lines changed

CMakeLists.txt

+5-16
Original file line numberDiff line numberDiff line change
@@ -483,33 +483,22 @@ endif()
483483
if(BUILD_SAMPLE AND BUILD_DX11 AND WIN32)
484484
list(APPEND TOOL_EXES ddsview)
485485

486-
if(NOT COMPILED_DDSVIEW_SHADERS)
487-
if(USE_PREBUILT_SHADERS)
488-
message(FATAL_ERROR "ERROR: Using prebuilt shaders requires the COMPILED_DDSVIEW_SHADERS variable is set")
489-
endif()
490-
set(COMPILED_DDSVIEW_SHADERS ${CMAKE_CURRENT_BINARY_DIR}/Shaders/Compiled)
491-
file(MAKE_DIRECTORY ${COMPILED_DDSVIEW_SHADERS})
492-
else()
493-
file(TO_CMAKE_PATH ${COMPILED_DDSVIEW_SHADERS} COMPILED_DDSVIEW_SHADERS)
494-
endif()
495-
496486
add_executable(ddsview WIN32
497487
DDSView/ddsview.cpp
498488
DDSView/ddsview.rc
499-
${COMPILED_DDSVIEW_SHADERS}/ddsview_ps1D.inc)
489+
${COMPILED_SHADERS}/ddsview_ps1D.inc)
500490
target_link_libraries(ddsview PRIVATE ${PROJECT_NAME} d3d11.lib ole32.lib)
501491
source_group(ddsview REGULAR_EXPRESSION DDSView/*.*)
502492

503-
target_include_directories(ddsview PRIVATE ${COMPILED_DDSVIEW_SHADERS})
493+
target_include_directories(ddsview PRIVATE ${COMPILED_SHADERS})
504494

505495
if(NOT USE_PREBUILT_SHADERS)
506-
#TODO: DIRECTX_FXC_TOOL
507496
add_custom_command(
508-
OUTPUT "${COMPILED_DDSVIEW_SHADERS}/ddsview_ps1D.inc"
497+
OUTPUT "${COMPILED_SHADERS}/ddsview_ps1D.inc"
509498
MAIN_DEPENDENCY "${PROJECT_SOURCE_DIR}/DDSView/hlsl.cmd"
510-
DEPENDS "${PROJECT_SOURCE_DIR}/DDSView/ddsview.fx"
499+
DEPENDS "DDSView/ddsview.hlsl"
511500
COMMENT "Generating HLSL shaders for DDSView..."
512-
COMMAND COMMAND ${CMAKE_COMMAND} -E env CompileShadersOutput="${COMPILED_DDSVIEW_SHADERS}" hlsl.cmd > "${COMPILED_DDSVIEW_SHADERS}/hlsl.log"
501+
COMMAND ${CMAKE_COMMAND} -E env CompileShadersOutput="${COMPILED_SHADERS}" $<$<BOOL:${DIRECTX_FXC_TOOL}>:LegacyShaderCompiler=${DIRECTX_FXC_TOOL}> hlsl.cmd > "${COMPILED_SHADERS}/hlsl_ddsview.log"
513502
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/DDSView"
514503
USES_TERMINAL)
515504
endif()

Common/CmdLineHelpers.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -353,4 +353,4 @@ namespace Helpers
353353

354354
return desc;
355355
}
356-
}
356+
}

DDSView/DDSView_Desktop_2019.vcxproj

+5-2
Original file line numberDiff line numberDiff line change
@@ -291,7 +291,7 @@
291291
</ProjectReference>
292292
</ItemGroup>
293293
<ItemGroup>
294-
<None Include="ddsview.fx" />
294+
<None Include="ddsview.hlsl" />
295295
</ItemGroup>
296296
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
297297
<ImportGroup Label="ExtensionTargets" />
@@ -300,10 +300,13 @@
300300
<_ATGFXCPath>$(WindowsSDK_ExecutablePath_x64.Split(';')[0])</_ATGFXCPath>
301301
<_ATGFXCPath>$(_ATGFXCPath.Replace("x64",""))</_ATGFXCPath>
302302
<_ATGFXCPath Condition="'$(_ATGFXCPath)' != '' and !HasTrailingSlash('$(_ATGFXCPath)')">$(_ATGFXCPath)\</_ATGFXCPath>
303+
<_ATGFXCVer>$([System.Text.RegularExpressions.Regex]::Match($(_ATGFXCPath), `10\.0\.\d+\.0`))</_ATGFXCVer>
304+
<_ATGFXCVer Condition="'$(_ATGFXCVer)' != '' and !HasTrailingSlash('$(_ATGFXCVer)')">$(_ATGFXCVer)\</_ATGFXCVer>
303305
</PropertyGroup>
304-
<Exec Condition="!Exists('Shaders/ddsview_vs.inc')" WorkingDirectory="$(ProjectDir)" Command="hlsl" EnvironmentVariables="WindowsSdkVerBinPath=$(_ATGFXCPath)" LogStandardErrorAsError="true" />
306+
<Exec Condition="!Exists('Shaders/ddsview_vs.inc')" WorkingDirectory="$(ProjectDir)" Command="hlsl" EnvironmentVariables="WindowsSdkVerBinPath=$(_ATGFXCPath);WindowsSDKVersion=$(_ATGFXCVer);CompileShadersOutput=$(ProjectDir)\Shaders" LogStandardErrorAsError="true" />
305307
<PropertyGroup>
306308
<_ATGFXCPath />
309+
<_ATGFXCVer />
307310
</PropertyGroup>
308311
</Target>
309312
<Target Name="ATGDeleteShaders" AfterTargets="Clean">

DDSView/DDSView_Desktop_2019.vcxproj.filters

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,6 @@
1515
</ResourceCompile>
1616
</ItemGroup>
1717
<ItemGroup>
18-
<None Include="ddsview.fx" />
18+
<None Include="ddsview.hlsl" />
1919
</ItemGroup>
2020
</Project>

DDSView/DDSView_Desktop_2022.vcxproj

+5-2
Original file line numberDiff line numberDiff line change
@@ -291,7 +291,7 @@
291291
</ProjectReference>
292292
</ItemGroup>
293293
<ItemGroup>
294-
<None Include="ddsview.fx" />
294+
<None Include="ddsview.hlsl" />
295295
</ItemGroup>
296296
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
297297
<ImportGroup Label="ExtensionTargets" />
@@ -300,10 +300,13 @@
300300
<_ATGFXCPath>$(WindowsSDK_ExecutablePath_x64.Split(';')[0])</_ATGFXCPath>
301301
<_ATGFXCPath>$(_ATGFXCPath.Replace("x64",""))</_ATGFXCPath>
302302
<_ATGFXCPath Condition="'$(_ATGFXCPath)' != '' and !HasTrailingSlash('$(_ATGFXCPath)')">$(_ATGFXCPath)\</_ATGFXCPath>
303+
<_ATGFXCVer>$([System.Text.RegularExpressions.Regex]::Match($(_ATGFXCPath), `10\.0\.\d+\.0`))</_ATGFXCVer>
304+
<_ATGFXCVer Condition="'$(_ATGFXCVer)' != '' and !HasTrailingSlash('$(_ATGFXCVer)')">$(_ATGFXCVer)\</_ATGFXCVer>
303305
</PropertyGroup>
304-
<Exec Condition="!Exists('Shaders/ddsview_vs.inc')" WorkingDirectory="$(ProjectDir)" Command="hlsl" EnvironmentVariables="WindowsSdkVerBinPath=$(_ATGFXCPath)" LogStandardErrorAsError="true" />
306+
<Exec Condition="!Exists('Shaders/ddsview_vs.inc')" WorkingDirectory="$(ProjectDir)" Command="hlsl" EnvironmentVariables="WindowsSdkVerBinPath=$(_ATGFXCPath);WindowsSDKVersion=$(_ATGFXCVer);CompileShadersOutput=$(ProjectDir)\Shaders" LogStandardErrorAsError="true" />
305307
<PropertyGroup>
306308
<_ATGFXCPath />
309+
<_ATGFXCVer />
307310
</PropertyGroup>
308311
</Target>
309312
<Target Name="ATGDeleteShaders" AfterTargets="Clean">

DDSView/DDSView_Desktop_2022.vcxproj.filters

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,6 @@
1515
</ResourceCompile>
1616
</ItemGroup>
1717
<ItemGroup>
18-
<None Include="ddsview.fx" />
18+
<None Include="ddsview.hlsl" />
1919
</ItemGroup>
2020
</Project>
File renamed without changes.

DDSView/hlsl.cmd

+27-13
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,25 @@ rem Licensed under the MIT License.
55
setlocal
66
set error=0
77

8+
if %PROCESSOR_ARCHITECTURE%.==ARM64. (set FXCARCH=arm64) else (if %PROCESSOR_ARCHITECTURE%.==AMD64. (set FXCARCH=x64) else (set FXCARCH=x86))
9+
810
set FXCOPTS=/nologo /WX /Ges /Qstrip_reflect /Qstrip_debug
911

10-
set PCFXC="%WindowsSdkVerBinPath%x86\fxc.exe"
12+
if defined LegacyShaderCompiler goto fxcviaenv
13+
set PCFXC="%WindowsSdkVerBinPath%%FXCARCH%\fxc.exe"
1114
if exist %PCFXC% goto continue
12-
set PCFXC="%WindowsSdkBinPath%%WindowsSDKVersion%\x86\fxc.exe"
15+
set PCFXC="%WindowsSdkBinPath%%WindowsSDKVersion%\%FXCARCH%\fxc.exe"
1316
if exist %PCFXC% goto continue
14-
set PCFXC="%WindowsSdkDir%bin\%WindowsSDKVersion%\x86\fxc.exe"
17+
set PCFXC="%WindowsSdkDir%bin\%WindowsSDKVersion%\%FXCARCH%\fxc.exe"
1518
if exist %PCFXC% goto continue
1619

1720
set PCFXC=fxc.exe
21+
goto continue
22+
23+
:fxcviaenv
24+
set PCFXC="%LegacyShaderCompiler%"
25+
if not exist %PCFXC% goto needfxc
26+
goto continue
1827

1928
:continue
2029
if not defined CompileShadersOutput set CompileShadersOutput=Shaders
@@ -23,45 +32,50 @@ set StrTrim=%StrTrim: ##=%
2332
set CompileShadersOutput=%StrTrim:##=%
2433
@if not exist "%CompileShadersOutput%" mkdir "%CompileShadersOutput%"
2534

26-
27-
set FXC=%PCFXC% ddsview.fx %FXCOPTS% /EVS /Tvs_4_1 /Fh%CompileShadersOutput%\ddsview_vs.inc
35+
set FXC=%PCFXC% ddsview.hlsl %FXCOPTS% /EVS /Tvs_4_1 /Fh%CompileShadersOutput%\ddsview_vs.inc
2836
echo %FXC%
2937
%FXC%
3038
@if ERRORLEVEL 1 goto error
3139

32-
set FXC=%PCFXC% ddsview.fx %FXCOPTS% /EPS_1D /Tps_4_1 /Fh%CompileShadersOutput%\ddsview_ps1D.inc
40+
set FXC=%PCFXC% ddsview.hlsl %FXCOPTS% /EPS_1D /Tps_4_1 /Fh%CompileShadersOutput%\ddsview_ps1D.inc
3341
echo %FXC%
3442
%FXC%
3543
@if ERRORLEVEL 1 goto error
3644

37-
set FXC=%PCFXC% ddsview.fx %FXCOPTS% /EPS_1DArray /Tps_4_1 /Fh%CompileShadersOutput%\ddsview_ps1Darray.inc
45+
set FXC=%PCFXC% ddsview.hlsl %FXCOPTS% /EPS_1DArray /Tps_4_1 /Fh%CompileShadersOutput%\ddsview_ps1Darray.inc
3846
echo %FXC%
3947
%FXC%
4048
@if ERRORLEVEL 1 goto error
4149

42-
set FXC=%PCFXC% ddsview.fx %FXCOPTS% /EPS_2D /Tps_4_1 /Fh%CompileShadersOutput%\ddsview_ps2D.inc
50+
set FXC=%PCFXC% ddsview.hlsl %FXCOPTS% /EPS_2D /Tps_4_1 /Fh%CompileShadersOutput%\ddsview_ps2D.inc
4351
echo %FXC%
4452
%FXC%
4553
@if ERRORLEVEL 1 goto error
4654

47-
set FXC=%PCFXC% ddsview.fx %FXCOPTS% /EPS_2DArray /Tps_4_1 /Fh%CompileShadersOutput%\ddsview_ps2Darray.inc
55+
set FXC=%PCFXC% ddsview.hlsl %FXCOPTS% /EPS_2DArray /Tps_4_1 /Fh%CompileShadersOutput%\ddsview_ps2Darray.inc
4856
echo %FXC%
4957
%FXC%
5058
@if ERRORLEVEL 1 goto error
5159

52-
set FXC=%PCFXC% ddsview.fx %FXCOPTS% /EPS_3D /Tps_4_1 /Fh%CompileShadersOutput%\ddsview_ps3D.inc
60+
set FXC=%PCFXC% ddsview.hlsl %FXCOPTS% /EPS_3D /Tps_4_1 /Fh%CompileShadersOutput%\ddsview_ps3D.inc
5361
echo %FXC%
5462
%FXC%
5563
@if ERRORLEVEL 1 goto error
5664

57-
set FXC=%PCFXC% ddsview.fx %FXCOPTS% /EPS_Cube /Tps_4_1 /Fh%CompileShadersOutput%\ddsview_psCube.inc
65+
set FXC=%PCFXC% ddsview.hlsl %FXCOPTS% /EPS_Cube /Tps_4_1 /Fh%CompileShadersOutput%\ddsview_psCube.inc
5866
echo %FXC%
5967
%FXC%
6068
@if ERRORLEVEL 1 goto error
6169

6270
@echo --- Shaders built ok ---
63-
@goto end
71+
endlocal
72+
exit /b 0
73+
6474
:error
6575
@echo --- ERROR: Shader build failed ---
6676
exit /b 1
67-
:end
77+
78+
:needfxc
79+
echo ERROR: CompileShaders requires FXC.EXE
80+
exit /b 1
81+
:end

Texassemble/texassemble.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -280,6 +280,8 @@ namespace
280280
{ nullptr, DXGI_FORMAT_UNKNOWN }
281281
};
282282

283+
#undef DEFFMT
284+
283285
const SValue<DXGI_FORMAT> g_pFormatAliases[] =
284286
{
285287
{ L"RGBA", DXGI_FORMAT_R8G8B8A8_UNORM },

Texconv/texconv.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -444,6 +444,8 @@ namespace
444444
{ nullptr, DXGI_FORMAT_UNKNOWN }
445445
};
446446

447+
#undef DEFFMT
448+
447449
const SValue<uint32_t> g_pFilters[] =
448450
{
449451
{ L"POINT", TEX_FILTER_POINT },

Texdiag/texdiag.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -325,6 +325,8 @@ namespace
325325
{ nullptr, DXGI_FORMAT_UNKNOWN }
326326
};
327327

328+
#undef DEFFMT
329+
328330
const SValue<uint32_t> g_pFilters[] =
329331
{
330332
{ L"POINT", TEX_FILTER_POINT },

0 commit comments

Comments
 (0)