Make View::SortFinalizedDrawLists use child jobs so they don't block the worker thread from doing other work while waiting.
Implement a TaskGraph version of the view draw list sort.
Fix a misc bug where the scene was waiting on a task graph event twice and so hanging.
Enable MeshFeatureProcessor::Simulate to be able to use jobs when no parent job is specified because the parent job is a task.
Signed-off-by: rgba16f <82187279+rgba16f@users.noreply.github.com>
* Multiple bug fixes
- Handle Dx12 validation error related to multiple resource transitions happening on the same resource.
- Added API to better query for image/buffer views associated with an attachment.
- Address possible serialization issues by usage of size_t
- Reduced number of Descriptor sets allowed per SRG Pool in order to reduce descriptor waste.
Signed-off-by: moudgils <47460854+moudgils@users.noreply.github.com>
* Addressed minor feedback
Signed-off-by: moudgils <47460854+moudgils@users.noreply.github.com>
* Fix compile issues
Signed-off-by: moudgils <47460854+moudgils@users.noreply.github.com>
* Missed a few other fixes
Signed-off-by: moudgils <47460854+moudgils@users.noreply.github.com>
* Added buffer for material properties of detail mateirals, storing them in a multi-indexed data vector. Updated shader with relevant struct and buffer, but the buffer will need to be moved out of the mateiral SRG to work.
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
* Added buffer for material properties of detail mateirals, storing them in a multi-indexed data vector. Updated shader with relevant struct and buffer, but the buffer will need to be moved out of the mateiral SRG to work.
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
* Added buffer for material properties of detail mateirals, storing them in a multi-indexed data vector. Updated shader with relevant struct and buffer, but the buffer will need to be moved out of the mateiral SRG to work.
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
* - Moved settings related to the detail material to a partial view srg owned by the terrain gem.
- Added support for base color in detail materials.
- Hooked up basic base color rendering of detail materials.
- Corrected the way the material data was stored.
- Added ref counting for detail materials so they can be released when no longer used.
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
* Added buffer for material properties of detail mateirals, storing them in a multi-indexed data vector. Updated shader with relevant struct and buffer, but the buffer will need to be moved out of the mateiral SRG to work.
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
* - Moved settings related to the detail material to a partial view srg owned by the terrain gem.
- Added support for base color in detail materials.
- Hooked up basic base color rendering of detail materials.
- Corrected the way the material data was stored.
- Added ref counting for detail materials so they can be released when no longer used.
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
* Detail materials now put textures into bindless array that's accessed in the shader. Shader now pulls all the detail materal information for a single mateiral but does no blending.
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
* Correcting rebase merge problem.
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
* Fix detail roughness fade out with distance.
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
* Adding tests for new MultiIndexedDataVector functions
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
* Updates to move bindless array to separate SRG
- Exposed BindSrg() in renderpass so it's possible to add additional SRGs to a pass
- Created a TerrainSrg for use by the terrain forward shader
- Moved the bindless array out of the partial view SRG to the TerrainSrg
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
* Moved more properties out of the view srg to the terrain srg.
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
* Spelling fixes
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
* Fixing bug where the roughness min/max value were inverted. Also fixed bug where bad data would show for areas where there was no macro material.
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
* Updates from PR review
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
* Fixing case issues and updating function name due to a recent fix.
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
I actually tried this approach before and it didn't seem to work the way we needed, but I realized that's because PropertyAssetCtrl wasn't handling missing assets properly. I fixed a few issues there including showing the error button when the asset can't be found, and fixing a broken reference to the error icon file.
Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
* The Build Time Stamp of ShaderAsset And
ShaderVariantAsset Should Be Based On
GetTimeUTCMilliSecond()
GetTimeNowMicroseconds() is useful to measure time stamp differences.
GetTimeUTCMilliSecond() is for time stamps based on absolute clock/wall time.
* Updated DiffuseGlobalIllumination precompiled shaders
Co-authored-by: dmcdiar <dmcdiar@amazon.com>
Signed-off-by: galibzon <66021303+galibzon@users.noreply.github.com>
* Add a default fallback image when a StreamingImageAsset fails to load
Signed-off-by: Tommy Walton <waltont@amazon.com>
* Don't release a missing/invalid texture reference in the skybox component. Hold on to the reference so that it can hot-reload
Signed-off-by: Tommy Walton <waltont@amazon.com>
* Don't release a missing/invalid texture reference in the ibl component. Hold on to the reference so that it can hot-reload
Signed-off-by: Tommy Walton <waltont@amazon.com>
* Use a different fallback image depending on the status of the asset. Including a setting to use a friendly image that is less obnoxious for anything that might have been missed in a release build
Signed-off-by: Tommy Walton <waltont@amazon.com>
* Adding the stubbed in fallback textures
Signed-off-by: Tommy Walton <waltont@amazon.com>
* Updated the seedlist for the RPI to include the fallback images. It only needs the default and the missing asset images, since the AP doesn't run in release builds, the asset status will always be unknown, not processing or failed to process, so if an asset is not bundled, it is just missing.
Signed-off-by: Tommy Walton <waltont@amazon.com>
* Switched to GetAssetIdByPath and removed some tabs
Signed-off-by: Tommy Walton <waltont@amazon.com>
Material Editor also warns the user when saving a material that is populated with fallback image references.
Factored out the path strings for the default images to ImateSystemInterface.h.
Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
Fixed potential render scene time precision issues.
The timestamp was simply converted from GetTimeAtCurrentTick to a float. Since this value is backed by QueryPerformanceCounter which is 0 at boot, you could see broken animations on the GPU when your system has been on for a long time. So I simplified the RPI's time API (removed unused code), and subtracted the application start time each frame before converting the time value to a float.
Also moved FindShaderInputConstantIndex("m_time") to be called only once, instead of every frame.
Testing:
Originally: I had a local material shader that did vertex animation and it wasn't working at all before, and now it works.
More recently, I made local changes to StandardPBR to add a simple sin wave animation. I also modified GetTimeNowMicroSecond() to artificially add 30 days to the clock. This showed choppy animation before my changes, and smooth animation after.
AtomSampleViewer passed dx12 and vulkan (other than pre-existing issues)
Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
Fixed potential render scene time precision issues.
The timestamp was simply converted from GetTimeAtCurrentTick to a float. Since this value is backed by QueryPerformanceCounter which is 0 at boot, you could see broken animations on the GPU when your system has been on for a long time. So I simplified the RPI's time API (removed unused code), and subtracted the application start time each frame before converting the time value to a float.
Also moved FindShaderInputConstantIndex("m_time") to be called only once, instead of every frame.
Testing:
Originally: I had a local material shader that did vertex animation and it wasn't working at all before, and now it works.
More recently, I made local changes to StandardPBR to add a simple sin wave animation. I also modified GetTimeNowMicroSecond() to artificially add 30 days to the clock. This showed choppy animation before my changes, and smooth animation after.
AtomSampleViewer passed dx12 and vulkan (other than pre-existing issues)