Update for recent tool improvements

This commit is contained in:
Chuck Walbourn 2024-09-16 14:07:57 -07:00
parent 133e49a8fc
commit 2789da74f1
12 changed files with 72 additions and 23 deletions

View File

@ -467,10 +467,9 @@ if(BUILD_TOOLS AND BUILD_DX11 AND WIN32)
add_custom_command( add_custom_command(
OUTPUT "${COMPILED_SHADERS}/Texenvmap_VSBasic.inc" OUTPUT "${COMPILED_SHADERS}/Texenvmap_VSBasic.inc"
MAIN_DEPENDENCY "${PROJECT_SOURCE_DIR}/Texenvmap/Shaders/CompileShaders.cmd" MAIN_DEPENDENCY "${PROJECT_SOURCE_DIR}/Texenvmap/Shaders/CompileShaders.cmd"
DEPENDS "${PROJECT_SOURCE_DIR}/Texenvmap/Shaders/Texenvmap.fx" DEPENDS "Texenvmap/Shaders/Texenvmap.hlsl"
COMMENT "Generating HLSL shaders for texenvmap..." COMMENT "Generating HLSL shaders for texenvmap..."
COMMAND set CompileShadersOutput=${COMPILED_SHADERS} COMMAND ${CMAKE_COMMAND} -E env CompileShadersOutput="${COMPILED_SHADERS}" $<$<BOOL:${DIRECTX_FXC_TOOL}>:LegacyShaderCompiler=${DIRECTX_FXC_TOOL}> CompileShaders.cmd > "${COMPILED_SHADERS}/compileshaders_envmap.log"
COMMAND CompileShaders.cmd
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/Texenvmap/Shaders" WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/Texenvmap/Shaders"
USES_TERMINAL) USES_TERMINAL)
endif() endif()

View File

@ -9,6 +9,7 @@ if %PROCESSOR_ARCHITECTURE%.==ARM64. (set FXCARCH=arm64) else (if %PROCESSOR_ARC
set FXCOPTS=/nologo /WX /Ges /Zi /Zpc /Qstrip_reflect /Qstrip_debug set FXCOPTS=/nologo /WX /Ges /Zi /Zpc /Qstrip_reflect /Qstrip_debug
if defined LegacyShaderCompiler goto fxcviaenv
set PCFXC="%WindowsSdkVerBinPath%%FXCARCH%\fxc.exe" set PCFXC="%WindowsSdkVerBinPath%%FXCARCH%\fxc.exe"
if exist %PCFXC% goto continue if exist %PCFXC% goto continue
set PCFXC="%WindowsSdkBinPath%%WindowsSDKVersion%\%FXCARCH%\fxc.exe" set PCFXC="%WindowsSdkBinPath%%WindowsSDKVersion%\%FXCARCH%\fxc.exe"
@ -17,6 +18,12 @@ set PCFXC="%WindowsSdkDir%bin\%WindowsSDKVersion%\%FXCARCH%\fxc.exe"
if exist %PCFXC% goto continue if exist %PCFXC% goto continue
set PCFXC=fxc.exe set PCFXC=fxc.exe
goto continue
:fxcviaenv
set PCFXC="%LegacyShaderCompiler%"
if not exist %PCFXC% goto needfxc
goto continue
:continue :continue
if not defined CompileShadersOutput set CompileShadersOutput=Compiled if not defined CompileShadersOutput set CompileShadersOutput=Compiled
@ -42,8 +49,12 @@ endlocal
exit /b 0 exit /b 0
:CompileShader :CompileShader
set fxc=%PCFXC% %1.fx %FXCOPTS% /T%2_4_0 /E%3 /Fh%CompileShadersOutput%\%1_%3.inc /Fd%CompileShadersOutput%\%1_%3.pdb /Vn%1_%3 set fxc=%PCFXC% "%1.hlsl" %FXCOPTS% /T%2_4_0 /E%3 "/Fh%CompileShadersOutput%\%1_%3.inc" "/Fd%CompileShadersOutput%\%1_%3.pdb" /Vn%1_%3
echo. echo.
echo %fxc% echo %fxc%
%fxc% || set error=1 %fxc% || set error=1
exit /b exit /b
:needfxc
echo ERROR: CompileShaders requires FXC.EXE
exit /b 1

View File

@ -299,6 +299,9 @@
<ItemGroup> <ItemGroup>
<Manifest Include="settings.manifest" /> <Manifest Include="settings.manifest" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<None Include="Shaders\Texenvmap.hlsl" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets" /> <ImportGroup Label="ExtensionTargets" />
<Target Name="ATGEnsureShaders" BeforeTargets="PrepareForBuild"> <Target Name="ATGEnsureShaders" BeforeTargets="PrepareForBuild">
@ -306,10 +309,13 @@
<_ATGFXCPath>$(WindowsSDK_ExecutablePath_x64.Split(';')[0])</_ATGFXCPath> <_ATGFXCPath>$(WindowsSDK_ExecutablePath_x64.Split(';')[0])</_ATGFXCPath>
<_ATGFXCPath>$(_ATGFXCPath.Replace("x64",""))</_ATGFXCPath> <_ATGFXCPath>$(_ATGFXCPath.Replace("x64",""))</_ATGFXCPath>
<_ATGFXCPath Condition="'$(_ATGFXCPath)' != '' and !HasTrailingSlash('$(_ATGFXCPath)')">$(_ATGFXCPath)\</_ATGFXCPath> <_ATGFXCPath Condition="'$(_ATGFXCPath)' != '' and !HasTrailingSlash('$(_ATGFXCPath)')">$(_ATGFXCPath)\</_ATGFXCPath>
<_ATGFXCVer>$([System.Text.RegularExpressions.Regex]::Match($(_ATGFXCPath), `10\.0\.\d+\.0`))</_ATGFXCVer>
<_ATGFXCVer Condition="'$(_ATGFXCVer)' != '' and !HasTrailingSlash('$(_ATGFXCVer)')">$(_ATGFXCVer)\</_ATGFXCVer>
</PropertyGroup> </PropertyGroup>
<Exec Condition="!Exists('Shaders/Compiled/Texenvmap_VSBasic.inc')" WorkingDirectory="$(ProjectDir)Shaders" Command="CompileShaders" EnvironmentVariables="WindowsSdkVerBinPath=$(_ATGFXCPath)" /> <Exec Condition="!Exists('Shaders/Compiled/Texenvmap_VSBasic.inc')" WorkingDirectory="$(ProjectDir)Shaders" Command="CompileShaders" EnvironmentVariables="WindowsSdkVerBinPath=$(_ATGFXCPath);WindowsSDKVersion=$(_ATGFXCVer);CompileShadersOutput=$(ProjectDir)Shaders/Compiled" LogStandardErrorAsError="true" />
<PropertyGroup> <PropertyGroup>
<_ATGFXCPath /> <_ATGFXCPath />
<_ATGFXCVer />
</PropertyGroup> </PropertyGroup>
</Target> </Target>
<Target Name="ATGDeleteShaders" AfterTargets="Clean"> <Target Name="ATGDeleteShaders" AfterTargets="Clean">
@ -319,5 +325,5 @@
</ItemGroup> </ItemGroup>
<Delete Files="@(_ATGShaderHeaders)" /> <Delete Files="@(_ATGShaderHeaders)" />
<Delete Files="@(_ATGShaderSymbols)" /> <Delete Files="@(_ATGShaderSymbols)" />
</Target> </Target>
</Project> </Project>

View File

@ -19,4 +19,7 @@
<Filter>Resource Files</Filter> <Filter>Resource Files</Filter>
</Manifest> </Manifest>
</ItemGroup> </ItemGroup>
<ItemGroup>
<None Include="Shaders\Texenvmap.hlsl" />
</ItemGroup>
</Project> </Project>

View File

@ -429,6 +429,9 @@
<ItemGroup> <ItemGroup>
<Manifest Include="settings.manifest" /> <Manifest Include="settings.manifest" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<None Include="Shaders\Texenvmap.hlsl" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets" /> <ImportGroup Label="ExtensionTargets" />
<Target Name="ATGEnsureShaders" BeforeTargets="PrepareForBuild"> <Target Name="ATGEnsureShaders" BeforeTargets="PrepareForBuild">
@ -436,10 +439,13 @@
<_ATGFXCPath>$(WindowsSDK_ExecutablePath_x64.Split(';')[0])</_ATGFXCPath> <_ATGFXCPath>$(WindowsSDK_ExecutablePath_x64.Split(';')[0])</_ATGFXCPath>
<_ATGFXCPath>$(_ATGFXCPath.Replace("x64",""))</_ATGFXCPath> <_ATGFXCPath>$(_ATGFXCPath.Replace("x64",""))</_ATGFXCPath>
<_ATGFXCPath Condition="'$(_ATGFXCPath)' != '' and !HasTrailingSlash('$(_ATGFXCPath)')">$(_ATGFXCPath)\</_ATGFXCPath> <_ATGFXCPath Condition="'$(_ATGFXCPath)' != '' and !HasTrailingSlash('$(_ATGFXCPath)')">$(_ATGFXCPath)\</_ATGFXCPath>
<_ATGFXCVer>$([System.Text.RegularExpressions.Regex]::Match($(_ATGFXCPath), `10\.0\.\d+\.0`))</_ATGFXCVer>
<_ATGFXCVer Condition="'$(_ATGFXCVer)' != '' and !HasTrailingSlash('$(_ATGFXCVer)')">$(_ATGFXCVer)\</_ATGFXCVer>
</PropertyGroup> </PropertyGroup>
<Exec Condition="!Exists('Shaders/Compiled/Texenvmap_VSBasic.inc')" WorkingDirectory="$(ProjectDir)Shaders" Command="CompileShaders" EnvironmentVariables="WindowsSdkVerBinPath=$(_ATGFXCPath)" /> <Exec Condition="!Exists('Shaders/Compiled/Texenvmap_VSBasic.inc')" WorkingDirectory="$(ProjectDir)Shaders" Command="CompileShaders" EnvironmentVariables="WindowsSdkVerBinPath=$(_ATGFXCPath);WindowsSDKVersion=$(_ATGFXCVer);CompileShadersOutput=$(ProjectDir)Shaders/Compiled" LogStandardErrorAsError="true" />
<PropertyGroup> <PropertyGroup>
<_ATGFXCPath /> <_ATGFXCPath />
<_ATGFXCVer />
</PropertyGroup> </PropertyGroup>
</Target> </Target>
<Target Name="ATGDeleteShaders" AfterTargets="Clean"> <Target Name="ATGDeleteShaders" AfterTargets="Clean">
@ -449,5 +455,5 @@
</ItemGroup> </ItemGroup>
<Delete Files="@(_ATGShaderHeaders)" /> <Delete Files="@(_ATGShaderHeaders)" />
<Delete Files="@(_ATGShaderSymbols)" /> <Delete Files="@(_ATGShaderSymbols)" />
</Target> </Target>
</Project> </Project>

View File

@ -19,4 +19,7 @@
<Filter>Resource Files</Filter> <Filter>Resource Files</Filter>
</Manifest> </Manifest>
</ItemGroup> </ItemGroup>
<ItemGroup>
<None Include="Shaders\Texenvmap.hlsl" />
</ItemGroup>
</Project> </Project>

View File

@ -299,6 +299,9 @@
<ItemGroup> <ItemGroup>
<Manifest Include="settings.manifest" /> <Manifest Include="settings.manifest" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<None Include="Shaders\Texenvmap.hlsl" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets" /> <ImportGroup Label="ExtensionTargets" />
<Target Name="ATGEnsureShaders" BeforeTargets="PrepareForBuild"> <Target Name="ATGEnsureShaders" BeforeTargets="PrepareForBuild">
@ -306,10 +309,13 @@
<_ATGFXCPath>$(WindowsSDK_ExecutablePath_x64.Split(';')[0])</_ATGFXCPath> <_ATGFXCPath>$(WindowsSDK_ExecutablePath_x64.Split(';')[0])</_ATGFXCPath>
<_ATGFXCPath>$(_ATGFXCPath.Replace("x64",""))</_ATGFXCPath> <_ATGFXCPath>$(_ATGFXCPath.Replace("x64",""))</_ATGFXCPath>
<_ATGFXCPath Condition="'$(_ATGFXCPath)' != '' and !HasTrailingSlash('$(_ATGFXCPath)')">$(_ATGFXCPath)\</_ATGFXCPath> <_ATGFXCPath Condition="'$(_ATGFXCPath)' != '' and !HasTrailingSlash('$(_ATGFXCPath)')">$(_ATGFXCPath)\</_ATGFXCPath>
<_ATGFXCVer>$([System.Text.RegularExpressions.Regex]::Match($(_ATGFXCPath), `10\.0\.\d+\.0`))</_ATGFXCVer>
<_ATGFXCVer Condition="'$(_ATGFXCVer)' != '' and !HasTrailingSlash('$(_ATGFXCVer)')">$(_ATGFXCVer)\</_ATGFXCVer>
</PropertyGroup> </PropertyGroup>
<Exec Condition="!Exists('Shaders/Compiled/Texenvmap_VSBasic.inc')" WorkingDirectory="$(ProjectDir)Shaders" Command="CompileShaders" EnvironmentVariables="WindowsSdkVerBinPath=$(_ATGFXCPath)" /> <Exec Condition="!Exists('Shaders/Compiled/Texenvmap_VSBasic.inc')" WorkingDirectory="$(ProjectDir)Shaders" Command="CompileShaders" EnvironmentVariables="WindowsSdkVerBinPath=$(_ATGFXCPath);WindowsSDKVersion=$(_ATGFXCVer);CompileShadersOutput=$(ProjectDir)Shaders/Compiled" LogStandardErrorAsError="true" />
<PropertyGroup> <PropertyGroup>
<_ATGFXCPath /> <_ATGFXCPath />
<_ATGFXCVer />
</PropertyGroup> </PropertyGroup>
</Target> </Target>
<Target Name="ATGDeleteShaders" AfterTargets="Clean"> <Target Name="ATGDeleteShaders" AfterTargets="Clean">
@ -319,5 +325,5 @@
</ItemGroup> </ItemGroup>
<Delete Files="@(_ATGShaderHeaders)" /> <Delete Files="@(_ATGShaderHeaders)" />
<Delete Files="@(_ATGShaderSymbols)" /> <Delete Files="@(_ATGShaderSymbols)" />
</Target> </Target>
</Project> </Project>

View File

@ -19,4 +19,7 @@
<Filter>Resource Files</Filter> <Filter>Resource Files</Filter>
</Manifest> </Manifest>
</ItemGroup> </ItemGroup>
<ItemGroup>
<None Include="Shaders\Texenvmap.hlsl" />
</ItemGroup>
</Project> </Project>

View File

@ -429,6 +429,9 @@
<ItemGroup> <ItemGroup>
<Manifest Include="settings.manifest" /> <Manifest Include="settings.manifest" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<None Include="Shaders\Texenvmap.hlsl" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets" /> <ImportGroup Label="ExtensionTargets" />
<Target Name="ATGEnsureShaders" BeforeTargets="PrepareForBuild"> <Target Name="ATGEnsureShaders" BeforeTargets="PrepareForBuild">
@ -436,10 +439,13 @@
<_ATGFXCPath>$(WindowsSDK_ExecutablePath_x64.Split(';')[0])</_ATGFXCPath> <_ATGFXCPath>$(WindowsSDK_ExecutablePath_x64.Split(';')[0])</_ATGFXCPath>
<_ATGFXCPath>$(_ATGFXCPath.Replace("x64",""))</_ATGFXCPath> <_ATGFXCPath>$(_ATGFXCPath.Replace("x64",""))</_ATGFXCPath>
<_ATGFXCPath Condition="'$(_ATGFXCPath)' != '' and !HasTrailingSlash('$(_ATGFXCPath)')">$(_ATGFXCPath)\</_ATGFXCPath> <_ATGFXCPath Condition="'$(_ATGFXCPath)' != '' and !HasTrailingSlash('$(_ATGFXCPath)')">$(_ATGFXCPath)\</_ATGFXCPath>
<_ATGFXCVer>$([System.Text.RegularExpressions.Regex]::Match($(_ATGFXCPath), `10\.0\.\d+\.0`))</_ATGFXCVer>
<_ATGFXCVer Condition="'$(_ATGFXCVer)' != '' and !HasTrailingSlash('$(_ATGFXCVer)')">$(_ATGFXCVer)\</_ATGFXCVer>
</PropertyGroup> </PropertyGroup>
<Exec Condition="!Exists('Shaders/Compiled/Texenvmap_VSBasic.inc')" WorkingDirectory="$(ProjectDir)Shaders" Command="CompileShaders" EnvironmentVariables="WindowsSdkVerBinPath=$(_ATGFXCPath)" /> <Exec Condition="!Exists('Shaders/Compiled/Texenvmap_VSBasic.inc')" WorkingDirectory="$(ProjectDir)Shaders" Command="CompileShaders" EnvironmentVariables="WindowsSdkVerBinPath=$(_ATGFXCPath);WindowsSDKVersion=$(_ATGFXCVer);CompileShadersOutput=$(ProjectDir)Shaders/Compiled" LogStandardErrorAsError="true" />
<PropertyGroup> <PropertyGroup>
<_ATGFXCPath /> <_ATGFXCPath />
<_ATGFXCVer />
</PropertyGroup> </PropertyGroup>
</Target> </Target>
<Target Name="ATGDeleteShaders" AfterTargets="Clean"> <Target Name="ATGDeleteShaders" AfterTargets="Clean">
@ -449,5 +455,5 @@
</ItemGroup> </ItemGroup>
<Delete Files="@(_ATGShaderHeaders)" /> <Delete Files="@(_ATGShaderHeaders)" />
<Delete Files="@(_ATGShaderSymbols)" /> <Delete Files="@(_ATGShaderSymbols)" />
</Target> </Target>
</Project> </Project>

View File

@ -19,4 +19,7 @@
<Filter>Resource Files</Filter> <Filter>Resource Files</Filter>
</Manifest> </Manifest>
</ItemGroup> </ItemGroup>
<ItemGroup>
<None Include="Shaders\Texenvmap.hlsl" />
</ItemGroup>
</Project> </Project>

View File

@ -64,9 +64,6 @@
#include "DirectXTex.h" #include "DirectXTex.h"
//Uncomment to add support for OpenEXR (.exr)
//#define USE_OPENEXR
#ifdef USE_OPENEXR #ifdef USE_OPENEXR
// See <https://github.com/Microsoft/DirectXTex/wiki/Adding-OpenEXR> for details // See <https://github.com/Microsoft/DirectXTex/wiki/Adding-OpenEXR> for details
#include "DirectXTexEXR.h" #include "DirectXTexEXR.h"
@ -242,7 +239,6 @@ namespace
#ifdef USE_OPENEXR #ifdef USE_OPENEXR
#define CODEC_EXR 0xFFFF0006 #define CODEC_EXR 0xFFFF0006
#endif #endif
#ifdef USE_LIBJPEG #ifdef USE_LIBJPEG
#define CODEC_JPEG 0xFFFF0007 #define CODEC_JPEG 0xFFFF0007
#endif #endif
@ -537,7 +533,7 @@ namespace
{ {
while (pValue->name) while (pValue->name)
{ {
size_t cchName = wcslen(pValue->name); const size_t cchName = wcslen(pValue->name);
if (cch + cchName + 2 >= 80) if (cch + cchName + 2 >= 80)
{ {
@ -602,7 +598,7 @@ namespace
LPWSTR errorText = nullptr; LPWSTR errorText = nullptr;
DWORD result = FormatMessageW(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS | FORMAT_MESSAGE_ALLOCATE_BUFFER, const DWORD result = FormatMessageW(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS | FORMAT_MESSAGE_ALLOCATE_BUFFER,
nullptr, static_cast<DWORD>(hr), nullptr, static_cast<DWORD>(hr),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), reinterpret_cast<LPWSTR>(&errorText), 0, nullptr); MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), reinterpret_cast<LPWSTR>(&errorText), 0, nullptr);
@ -613,14 +609,21 @@ namespace
swprintf_s(desc, L": %ls", errorText); swprintf_s(desc, L": %ls", errorText);
size_t len = wcslen(desc); size_t len = wcslen(desc);
if (len >= 2) if (len >= 1)
{ {
desc[len - 2] = 0;
desc[len - 1] = 0; desc[len - 1] = 0;
} }
if (errorText) if (errorText)
LocalFree(errorText); LocalFree(errorText);
for (wchar_t* ptr = desc; *ptr != 0; ++ptr)
{
if (*ptr == L'\r' || *ptr == L'\n')
{
*ptr = L' ';
}
}
} }
return desc; return desc;
@ -1763,7 +1766,7 @@ int __cdecl wmain(_In_ int argc, _In_z_count_(argc) wchar_t* argv[])
} }
} }
#endif #endif
else else
{ {
// WIC shares the same filter values for mode and dither // WIC shares the same filter values for mode and dither
@ -1961,7 +1964,7 @@ int __cdecl wmain(_In_ int argc, _In_z_count_(argc) wchar_t* argv[])
if (info.width > maxWidth) if (info.width > maxWidth)
maxWidth = info.width; maxWidth = info.width;
if (info.height > maxHeight) if (info.height > maxHeight)
maxHeight = info.height; maxHeight = info.height;
} }
if (images > 6) if (images > 6)
@ -2024,7 +2027,7 @@ int __cdecl wmain(_In_ int argc, _In_z_count_(argc) wchar_t* argv[])
pContext->RSSetState(stateObjects.CullNone()); pContext->RSSetState(stateObjects.CullNone());
auto linear = stateObjects.LinearClamp(); auto linear = stateObjects.LinearClamp();
for (size_t face = 0; face < 6; ++face) for (size_t face = 0; face < 6; ++face)
{ {
ComPtr<ID3D11ShaderResourceView> srv; ComPtr<ID3D11ShaderResourceView> srv;
auto& input = loadedImages[face]; auto& input = loadedImages[face];