Compile ore D3D11 shader modules with D3DCOMPILE_OPTIMIZATION_LEVEL1

Aperta Adatta ai principianti
#137 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
1/5
Tempo stimato
Meno di un'ora
Idoneità per principianti
91/100
Tipo di issue
Funzionalità
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
cpp

Direzione di ricerca

Apri source/renderer/ore/d3d11/ore_shader_module_d3d11.cpp ed esamina i flag di D3DCompile in ShaderModuleD3D11::ensureD3DShadersImpl. Modifica il flag di ottimizzazione dal livello 3 al livello 1, quindi conferma che i moduli shader D3D11 vengano compilati con l’impostazione richiesta.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Compile ore D3D11 shader modules with D3DCOMPILE_OPTIMIZATION_LEVEL1.

- source/renderer/ore/d3d11/ore_shader_module_d3d11.cpp: Ore D3D11 shader modules compile with D3DCOMPILE_OPTIMIZATION_LEVEL1 (the fxc default, the level Rive's own D3D pipeline manager uses) instead of LEVEL3: D3DCompile at level 3 takes tens of seconds on large PBR  lighting shaders, and the driver optimizes the DXBC again anyway

diff --git a/source/renderer/ore/d3d11/ore_shader_module_d3d11.cpp b/source/renderer/ore/d3d11/ore_shader_module_d3d11.cpp
index 9566d735050c824ae1363f20597aef37be3f7157..9b5c3a30b0c261d379369d1bc3eb5cc34ded4aef 100644
--- a/source/renderer/ore/d3d11/ore_shader_module_d3d11.cpp
+++ b/source/renderer/ore/d3d11/ore_shader_module_d3d11.cpp
@@ -43,7 +43,7 @@ void ShaderModuleD3D11::ensureD3DShadersImpl(
       nullptr,
       entry,
       target,
-      D3DCOMPILE_ENABLE_STRICTNESS | D3DCOMPILE_OPTIMIZATION_LEVEL3,
+      D3DCOMPILE_ENABLE_STRICTNESS | D3DCOMPILE_OPTIMIZATION_LEVEL1,
       0,
       compiledBlob.GetAddressOf(),
       errors.GetAddressOf());
Lingua principale
C++
Stelle
1.2k
Fork
133
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

  • Include un Dockerfile o un file Docker Compose
  • Nessun modello di pull request
  • Nessuna guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di rive-app/rive-runtime

Tutte le issue di rive-app/rive-runtime

Issue simili

Altre issue su C++

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.