@@ -132,6 +132,7 @@ SampleBase::CommandLineStatus USDViewer::ProcessCommandLine(int argc, const char
132
132
ArgsParser.Parse (" vertex_pool" , m_UseVertexPool);
133
133
ArgsParser.Parse (" index_pool" , m_UseIndexPool);
134
134
ArgsParser.Parse (" atlas_dim" , m_TextureAtlasDim);
135
+ ArgsParser.Parse (" shader_cache" , m_EnableShaderCache);
135
136
LOG_INFO_MESSAGE (" USD Viewer Arguments:" ,
136
137
" \n USD Path: " , m_UsdFileName,
137
138
" \n Use vertex pool: " , m_UseVertexPool ? " Yes" : " No" ,
@@ -154,8 +155,9 @@ void USDViewer::Initialize(const SampleInitInfo& InitInfo)
154
155
{
155
156
SampleBase::Initialize (InitInfo);
156
157
157
- // Create render state cache
158
+ if (m_EnableShaderCache)
158
159
{
160
+ // Create render state cache
159
161
RenderStateCacheCreateInfo StateCacheCI;
160
162
StateCacheCI.LogLevel = RENDER_STATE_CACHE_LOG_LEVEL_NORMAL;
161
163
@@ -189,6 +191,10 @@ void USDViewer::Initialize(const SampleInitInfo& InitInfo)
189
191
const bool SaveOnExit = true ;
190
192
m_DeviceWithCache.LoadCacheFromFile (CachePath.c_str (), SaveOnExit);
191
193
}
194
+ else
195
+ {
196
+ m_DeviceWithCache = RenderDeviceWithCache<false >{m_pDevice};
197
+ }
192
198
193
199
ImGuizmo::SetGizmoSizeClipSpace (0 .15f );
194
200
@@ -298,7 +304,8 @@ void USDViewer::LoadStage()
298
304
DelegateCI.UseIndexPool = m_UseIndexPool;
299
305
DelegateCI.EnableShadows = true ;
300
306
301
- DelegateCI.AllowHotShaderReload = m_EnableHotShaderReload;
307
+ DelegateCI.AllowHotShaderReload = m_EnableHotShaderReload;
308
+ DelegateCI.AsyncShaderCompilation = !m_EnableShaderCache;
302
309
303
310
if (m_DeviceWithCache.GetDeviceInfo ().Features .BindlessResources )
304
311
{
0 commit comments