#rnx
#rb none
#ROBOMERGE-SOURCE: CL 10869240 via CL 10869516 via CL 10869902
#ROBOMERGE-BOT: (v613-10869866)
[CL 10870584 by ryan durand in Main branch]
- Read ByteCode directly if unalgned loads are supported to condense 3 opts into 1 when reading a uint16
- Pre-calculate instance loops for VECTOR_WIDTH_FLOATS to avoid each vector op having to round / divide instance counts
- Added runtime optimization of the VM script, this currently boils down to a function call per VM invoke + storing the data required
- Use vm.OptimizeVMByteCode to enable optimized code generation
- Use vm.UseOptimizedVMByteCode to enable running optimized code rather the traditional byte code
[FYI] simon.tovey,rob.krajcarski,shaun.kime
#rnx
#ROBOMERGE-SOURCE: CL 9962648 via CL 9964955
#ROBOMERGE-BOT: (v560-9963197)
[CL 9965540 by stu mckenna in Main branch]
- VM is now directly fed a set of pre generated register tables from the datasets.
- Split the monolithic register table in the VM up so there are explicit I/O and temp register tables the script indexes into directly.
- Avoids some recreation of expensve objects in favour of manual reset calls.
- Re-wrote Oupt kernel to be more explicit. Going via templated handler in this case didn't get us any code reuse and just obfuscated it's workings.
Saves ~10-25us of overhead per VM involcation which soon adds up.
Saves ~1-2us inside each VM exec itself.
#rb Stu.Mckenna
#ROBOMERGE-SOURCE: CL 9743796 via CL 9743798
#ROBOMERGE-BOT: (v542-9736015)
[CL 9745804 by simon tovey in Main branch]
#rb Fred.Kimberley
#jira
#rnx
[CODEREVIEW] Simon.Tovey
#ROBOMERGE-SOURCE: CL 9152880 via CL 9152882 via CL 9152886
#ROBOMERGE-BOT: (v443-9013191)
[CL 9153386 by marc audy in Main branch]
#rb Nicholas.Goldstein
[FYI] shuan.kime
#ROBOMERGE-OWNER: Simon.Tovey
#ROBOMERGE-AUTHOR: simon.tovey
#ROBOMERGE-SOURCE: CL 9133376 via CL 9134494 via CL 9134514
#ROBOMERGE-BOT: (v443-9013191)
[CL 9135322 by Simon Tovey in Main branch]
Also run another optimization path after scalarization
Originally authored by Arne.Schober, integrated by Shaun.Kime
#rb Arne.Schober
[FYI] Simon.Tovey
#tests Engine tests passed
#ROBOMERGE-OWNER: shaun.kime
#ROBOMERGE-AUTHOR: shaun.kime
#ROBOMERGE-SOURCE: CL 8927626 via CL 8927643 via CL 8927657
#ROBOMERGE-BOT: (v429-8924992)
[CL 8928191 by shaun kime in Main branch]
- Optimizing temp register layout for better cache usage.
- Moving VM context from TLS to pool.
#rb Stu.Mckenna, Shaun.Kime
#ROBOMERGE-OWNER: simon.tovey
#ROBOMERGE-AUTHOR: simon.tovey
#ROBOMERGE-SOURCE: CL 8886792 via CL 8886955 via CL 8889429
#ROBOMERGE-BOT: (v427-8887818)
[CL 8890014 by simon tovey in Main branch]
#rb Shaun.Kime
#jira UE-75719
#ROBOMERGE-OWNER: simon.tovey
#ROBOMERGE-AUTHOR: simon.tovey
#ROBOMERGE-SOURCE: CL 7974077 via CL 7974683
#ROBOMERGE-BOT: (v396-7974030)
[CL 7975059 by simon tovey in Main branch]
Depends on 4861258!
#jira UE-69189
#rb none
[FYI] morten.vassvik
#ROBOMERGE-SOURCE: CL 4861438 via CL 4865436
[CL 4873048 by matt collins in Main branch]
This implements the framework to write the high level rendering code into passes organized in direct acyclic graph. It is also unifying the uniform buffer, shader parameters, and pass parameters to same single API: structures with run time meta data. This allow high level user code be extremely seamless, user code debugging, and render graph ease of implementation and debugging.
Issue of collaborative work of Arne Schnober, Brian Karis, Daniel Wright, Marcus Wassmer and Guillaume Abadie.
Names of the graph managed resources are not final.
#rb Arne.Schnober, Brian.Karis, Daniel.Wright, Marcus.Wassmer
[CL 4492694 by Guillaume Abadie in Dev-Rendering branch]