-Add a new define to wrap the output semantic that we want to be post declare as precise.
-Modify DXC-SIRV to add the NoContraction decorator on precise output semantics.
-Modify spirv_glsl to post declare as precise output semantics
-Example: out precise float4 gl_positon; will add precise gl_position; post declaration.
[REVIEW] [at]laura.hermanns
[CL 29338529 by serge bernier in ue5-main branch]
- Splitting "Bindless Resource" shader parameter types into "Bindless SRV" and "Bindless UAV" to make sure reflection/binding validation is correct.
#jira UE-166341
#rb jeannoe.morissette
[CL 28995862 by christopher waters in ue5-main branch]
- Support struct forward declarations.
- Support static member functions.
- Support scoped function definitions.
#jira UE-186066
#rb Jason.Nadro
[FYI] Sebastien.Hillaire, Christopher.Waters
#rnx
[CL 28959874 by laura hermanns in ue5-main branch]
* Generate line directive map during parsing
* Use xxhash instead of cityhash
* Avoid FStringView operator [] in ExtractIdentifiers
* Use TArray Reset instead of Empty where appropriate
* Vectorize SkipUntilNonIdentifierCharacter
* Vectorize ExtractBlock
* Vectorize line ending search
* Use FString directly instead of FStringBuilderBase for the final output to avoid a copy
#rb christopher.waters
#rb jason.hoerner
[CL 28699609 by yuriy odonnell in ue5-main branch]
- Patch HLSL to support SV_DepthGreaterEqual and SV_DepthLessEqual.
- Maintain order of shader input/output variables in cross-compiled HLSL.
#rb Jason.Nadro
#jira UE-186066, UE-192125
#rnx
[CL 28633421 by laura hermanns in ue5-main branch]
- Adding ability to 'forward declare' symbols per platform.
- Removes hardcoded symbols in HlslParser.cpp
- Converting a few array/string input types to views.
#rb dan.elksnitis
[CL 28494936 by christopher waters in ue5-main branch]
- Before this, every typedef and the code using them was being included in the final source.
- This was primarily affecting Bindless Resources where all bindless resources were included in the minified code even if they weren't used.
#rb yuriy.odonnell
[CL 28365749 by christopher waters in ue5-main branch]
Doesn't produce bit identical preprocessed output, as it compacts whitespace from compound identifiers before testing them, whereas the original implementation compacts whitespace after matching. Compacting first makes testing more efficient and simpler, since it doesn't need to take into account whitespace. For A/B validation, I did add temporary debug code that stored and reverted un-matched identifiers, mimicking the old behavior, and it was identical across the board.
#rnx
#rb dan.elksnitis chris.waters jason.nadro
[CL 28313553 by jason hoerner in ue5-main branch]
- Removing system calls from UniformBuffer parsing and processing.
- When searching for uses of a UniformBuffer, start after the end of the UniformBuffer declaration.
- Simplifying the code around UniformBuffer reference cleanup
- Cuts time in CleanupUniformBufferCode by 50-75% based on how large the shader is.
#jira UE-195103
#rb dan.elksnitis, jason.hoerner
[CL 28172021 by christopher waters in ue5-main branch]
- When generating Uniform Buffer HLSL code, a 'static const struct {} Name' was created which has been causing compiler issues off and on for years.
- When RemoveUniformBuffersFromSource removed said struct, it parsed the struct's structure to figure out how to translate UniformBuffer.Member into UniformBuffer_Member in code that accessed Uniform Buffers.
- Now, instead of a struct, a "UniformBuffer <Name>" declaration is created and filled with mappings from "UniformBuffer.Member" into the correct code.
- This allows ConstantBuffer objects to be used differently from cbuffer where the former generates "UniformBuffer.Member" and the latter generates "UniformBuffer_Member"
- This also allows resources to always be translated to "UniformBuffer_Member"
- Shader define 'PLATFORM_SUPPORTS_UB_STRUCT' is now 'PLATFORM_SUPPORTS_CONSTANTBUFFER_OBJECT' and will be set on shader formats that support ConstantBuffer<> objects.
- Removed lots of unused code from BindlessResources.ush
#jira UE-195103
#rb dan.elksnitis, jeannoe.morissette
[CL 28058373 by christopher waters in ue5-main branch]
Dedupe info where multiple workers built same shader
#rb Ben.Woodhouse
#tests local runs, compare of farm built files attached in bug
[CL 27995633 by tom holmes in ue5-main branch]