The ActorPositionWS BP node calls GetActorWorldPosition() in HLSL which references Primitive.ActorWorldPosition. But GetActorWorldPosition() is not protected by an #if HAS_PRIMITIVE_UNIFORM_BUFFER check. This means it will compile even in cases when there is no primitive uniform buffer, and can lead to bad memory access.
NOTE: This was reported by a UDN user, and I did not reproduce the crash internally
To reproduce the dangerous material configuration:
create a new 3rd person blueprint project in UE4
select the floor actor
create a new material & open blueprint
add Coordinates -> ActorPositionWS
connect output pin to material's Emissive Color pin
change Material Domain to Post Process
-> this produces invalid configuration, but no error in stats
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-37425 in the post.
| 0 |
| Component | UE - Graphics Features |
|---|---|
| Affects Versions | 4.12 |
| Target Fix | 4.15 |
| Fix Commit | 3165809 |
|---|---|
| Main Commit | 3206922 |
| Created | Oct 17, 2016 |
|---|---|
| Resolved | Nov 17, 2016 |
| Updated | Apr 27, 2018 |