- Mostly a straight port from mtlpp to MetalCPP
- The debug encoders have been removed in favour of Metal's built in encoder errors, these are always on in debug and development builds
- mtlpp had additional validation that we are now not implementing in the short term, but will revisit after some refactoring
#rb Zack.Neyland
[CL 29773146 by carl lloyd in ue5-main branch]
-The changes required for VisionOS Immersive mode that are not within the OpenXRVisionOS plugin.
-Enables SimpleHMD for VisionOS (stereo rendering without a hmd).
#jira UE-198733 UE-199918
#review-29530280
#rb Josh.Adams, Carl.Lloyd
[CL 29716903 by Jeff Fisher in ue5-main branch]
Fix MSAA bug where texture setting was overridden
Added GRHISupportsArrayIndexFromAnyShader for supported devices
#jira UE-196724
#jira UE-195832
#rb jeannoe.morrissette
[CL 29042944 by carl lloyd in ue5-main branch]
Also, while we still have it, make sure it behaves consistently across all RHIs. D3D11 used to assert that NumInstances is above 1, even though it's not using it, and a few other RHIs inherited that behavior. Vulkan was actually using NumInstances as the number of indirect draws to perform, which would have crashed if the data was set up as D3D11 wanted it.
#rb christopher.waters
[CL 28912567 by mihnea balta in ue5-main branch]
-EMetalViewportAccessFlag needs to be translated into an index, it can't just be used directly.
#review 28729619
#rb Carl.Lloyd Zach.Neyland
[CL 28757426 by Jeff Fisher in ue5-main branch]
- RHISetShaderTexture, RHISetShaderSampler, RHISetUAVParameter, RHISetShaderResourceViewParameter, RHISetShaderUniformBuffer, RHISetShaderParameter
- Only removing from the interface, each RHI still uses them in conjunction with UE::RHICore::RHISetShaderParametersShared, which uses the RHI type and not the interface.
- These methods are not part of the "public" interface so no deprecation is needed.
#rb luke.thatcher
[CL 27605633 by christopher waters in ue5-main branch]
- Discovered that a number of RHISetShaderResourceViewParameter and RHISetUAVParameter implementations do nothing with null resources, meaning that RHISetShaderUnbinds calls end up doing zero work with all the overhead.
- Adding GRHIGlobals::NeedsShaderUnbinds for RHIs to signal they need/handle unbind commands.
- RHIs that actually do work with RHISetShaderUnbinds now set NeedsShaderUnbinds on startup.
- Removed RHISetShaderUnbinds implementations that did zero work.
#rb luke.thatcher
[CL 27554898 by christopher waters in ue5-main branch]
- Fixing implementations to handle source offsets.
- Fixing implementations to handle source data smaller than the image's pitch (very small regions).
- Fixing implementations to handle RHI bypass correctly.
#rb Dmitriy.Dyomin, Florin.Pascu, Jeannoe.Morissette, Luke.Thatcher, Mihnea.Balta
[CL 26920943 by christopher waters in ue5-main branch]
- add a new shader platform (SP_METAL_SIM) to support iOS Simulator specific compilation requirements
- update iOS sim #define WITH_SIMULATOR to WITH_IOS_SIMULATOR
#jira UE-168571
#rb carl.lloyd
[CL 26850475 by adam kinge in ue5-main branch]