Commit Graph

49 Commits

Author SHA1 Message Date
Rolando Caloca
bbb9564388 Copying //UE4/Dev-RenderPlat-Staging@11110326 to //UE4/Main
#rb none
#rnx

[CL 11110369 by Rolando Caloca in Main branch]
2020-01-24 18:07:01 -05:00
ryan durand
471d972e62 Updating copyright for Engine Developer.
#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]
2019-12-26 15:32:37 -05:00
stu mckenna
b6010254ab - Write VectorVM code in LittleEndian as opposed to BigEndian, this avoids runtime byte swapping
- 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]
2019-11-03 14:40:53 -05:00
simon tovey
a6f998ae05 Fix for vm compiler bug introduced in 9743796 that would cause more temporaries to be used than needed.
#rb none
[FYI] Rob.Krajcarski


#ROBOMERGE-SOURCE: CL 9748550 via CL 9748551
#ROBOMERGE-BOT: (v543-9746878)

[CL 9748555 by simon tovey in Main branch]
2019-10-22 14:17:50 -04:00
simon tovey
6e2874c958 - Removing a bunch of setup work we do for VM exectuion with remapping of register tables.
- 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]
2019-10-22 11:10:29 -04:00
marc audy
08f24da437 Fix static analysis warning
#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]
2019-09-26 13:22:16 -04:00
Simon Tovey
83405b43f6 vm visitor to stop vm ops reading from the value they're writing as this is potentially unsafe.
#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]
2019-09-26 09:30:01 -04:00
shaun kime
edc7a45f74 enable FMA and Subtraction in favor of negated addition on Niagara Shader backend.
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]
2019-09-20 10:59:27 -04:00
simon tovey
c1a674c709 - Storing compact form of databuffer layout in single array to reduce cache misses in register setup.
- 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]
2019-09-19 12:36:11 -04:00
simon tovey
7087fab23a Fix for matrix params in external function calls. Or any function call for that matter.
#rb Shaun.Kime


#ROBOMERGE-SOURCE: CL 8744377 via CL 8781754
#ROBOMERGE-BOT: (v422-8689730)

[CL 8783815 by simon tovey in Main branch]
2019-09-17 19:16:28 -04:00
Marcus Wassmer
6517c68ef5 Copying //UE4/Dev-RenderPlat-Staging@8684824 to Dev-Main (//UE4/Dev-Main)
#rb none

[CL 8684840 by Marcus Wassmer in Main branch]
2019-09-14 09:45:25 -04:00
simon tovey
be7c3f9763 Now properly supporting DI function calls in the VM having unused output parameters.
#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]
2019-08-13 09:47:55 -04:00
shaun kime
42745a83da Handling edge case in the non-expression visitor.
[FYI] simon.tovey
#jira UE-78508
#tests n/a


#ROBOMERGE-SOURCE: CL 7844468 via CL 7861242
#ROBOMERGE-BOT: (v389-7813075)

[CL 7861298 by shaun kime in Main branch]
2019-08-08 01:23:58 -04:00
Rolando Caloca
aa0d2303d6 Copying //UE4/Dev-Rendering to Dev-Main (//UE4/Dev-Main) @ 6944469
#rb none
#rnx

[CL 6944849 by Rolando Caloca in Main branch]
2019-06-11 18:27:07 -04:00
rolando caloca
955a14de37 UE4 - Fix invalid IR on hlslcc potentially causing a crash
#rb none
[FYI] Jonas.Meyer
#rnx
#jira UE-71397

#ROBOMERGE-OWNER: rolando.caloca
#ROBOMERGE-AUTHOR: rolando.caloca
#ROBOMERGE-SOURCE: CL 5399410 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)

[CL 5399503 by rolando caloca in Main branch]
2019-03-14 14:16:41 -04:00
Simon Tovey
297d124251 Implementing CL5061473 in main manually to resolve merge issue.
Fix for data interface calls not being stripped correctly.

#jira none
#rb Frank.Fella

[CL 5061780 by Simon Tovey in Main branch]
2019-02-19 09:42:57 -05:00
Matt Collins
6b93e353eb Enabling Niagara VectorVM CVar.
#jira UE-69189
#rb none

[CL 4902577 by Matt Collins in Main branch]
2019-02-05 15:00:37 -05:00
Matt Collins
a0c6fc9fd2 Disabling the vectorvm fix in main. It will propagate up through dev-rendering.
#rb none

[CL 4879790 by Matt Collins in Main branch]
2019-02-02 15:40:51 -05:00
matt collins
022f230b84 Adds a cvar to allow niagara VM shader compilation to skip some of HLSLCC's backend optimization passes.
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]
2019-02-01 18:49:12 -05:00
Matt Collins
013a4e05c6 Adds a cvar to allow niagara VM shader compilation to skip some of HLSLCC's backend optimization passes.
Depends on CL4860885!

#jira UE-69189
#rb none
#fyi morten.vassvik

[CL 4860958 by Matt Collins in Dev-Rendering branch]
2019-01-31 16:53:21 -05:00
Marcus Wassmer
e83575daa4 Merging //UE4/Dev-Main@4754280 to Dev-Rendering (//UE4/Dev-Rendering)
#rb none
Major update is from Niagara stream.

[CL 4757171 by Marcus Wassmer in Dev-Rendering branch]
2019-01-18 18:16:57 -05:00
Shaun Kime
4ae7273fa2 Copying //UE4/Dev-Niagara to Dev-Main (//UE4/Dev-Main) as of Niagara CL 4733936
#rb none
#tests Niagara auto-tests for DX11 pass

[CL 4734948 by Shaun Kime in Main branch]
2019-01-16 14:29:53 -05:00
Marcus Wassmer
cbfcbbb93b Merging //UE4/Dev-Main@4662404 to Dev-Rendering (//UE4/Dev-Rendering)
#rb none
Should be just copyright updates

[CL 4680440 by Marcus Wassmer in Dev-Rendering branch]
2019-01-03 19:16:26 -05:00
Ben Marsh
7598af0532 Update copyright notices to 2019.
#rb none
#lockdown Nick.Penwarden

[CL 4662404 by Ben Marsh in Main branch]
2018-12-14 13:41:00 -05:00
Guillaume Abadie
c72b7a33d8 Merging //UE4/Dev-Rendering-Graph@4492585 to Dev-Rendering (//UE4/Dev-Rendering)
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]
2018-10-19 17:36:35 -04:00