Commit Graph

200 Commits (33cbc2db219cb77d088cb15c1774c86d9b1be9aa)

Author SHA1 Message Date
Esteban Papp 75c388b746 change conversions to static_cast
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
4 years ago
Esteban Papp 90cad016de Gems/Atom
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
4 years ago
pappeste 38fd7f0013 fixing Atom
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
4 years ago
michabr cd5081a7c3
Fix byte alignment issue for index/vertex buffers (#3110)
* Fix byte alignment issue for index/vertex buffers
* Remove default alignment value when getting dynamic buffer

Signed-off-by: abrmich <abrmich@amazon.com>
4 years ago
antonmic 7d4022fbdf
Merge pull request #3035 from aws-lumberyard-dev/Atom/antonmic/PassBuilder
Changing pass builder to declare job dependencies on referenced .shader files and consequently removing the critical flag from the shader builder.
4 years ago
moudgils c2b8542bbd
Support for refresh rate and sync interval (#2989)
* Add support for querying the refresh rate and sync interval
4 years ago
antonmic 193fa3c918
Merge pull request #2584 from aws-lumberyard-dev/Atom/antonmic/SrgDebugImprovements
Shader resource group debug improvements
4 years ago
antonmic adf7a34ef5 Got PassBuilder shader dependency working and removed critical flag from shader builder
Signed-off-by: antonmic <56370189+antonmic@users.noreply.github.com>
4 years ago
antonmic 5472d6768e Minor improvements
Signed-off-by: antonmic <56370189+antonmic@users.noreply.github.com>
4 years ago
antonmic 43ae25b49b fixed compiler loss of precision warning
Signed-off-by: antonmic <56370189+antonmic@users.noreply.github.com>
4 years ago
antonmic 8d7d560d9d Merge branch 'dev' into Atom/antonmic/SrgDebugImprovements 4 years ago
antonmic 5f1e973b3f Removing condition from View SRG compilation
Signed-off-by: antonmic <56370189+antonmic@users.noreply.github.com>
4 years ago
antonmic 64cff38f82 Addressing PR feedback and fixed a small issue with the draw item count display
Signed-off-by: antonmic <56370189+antonmic@users.noreply.github.com>
4 years ago
Esteban Papp 19d79f1559 Merge branch 'development' into cmake/SPEC-2513_w4267 4 years ago
michabr 3a689aa319
Reenable support for UI Elements that use Render Targets (#2352)
* Re-add support for UI Elements that use Render Targets
* Move LyShine pass request from Atom's MainPipeline.pass to project's
* Make all dynamic draw contexts in LyShine draw to pass directly without the need of draw list tags
* Remove local RPI changes that are no longer needed
* Prevent crash if LyShine gem is enabled but its custom pass hasn't been added to the main render pipeline
* Revert to default UI pass if the LyShine pass has not been added to project's main render pipeline

Signed-off-by: abrmich <abrmich@amazon.com>
4 years ago
Esteban Papp b33a4db332 Merge branch 'development' into cmake/SPEC-2513_w4267 4 years ago
Chris Santora fec79a7d53 Moved the material slot list from ModelLodAsset to ModelAsset, so all the slots live in one main list. This removes data duplication between LODs and cleans up the code a bit.
I had to update the ModelLod class to take in both the ModelLodAsset and ModelAsset for initialization so it can fetch the slots for each mesh.

Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
4 years ago
Chris Santora 14d2e38b90 Refactored how model material slots work in preparation to support more flexible material conversion options for the scene asset pipeline. The material slot IDs are based on the MaterialUid that come from SceneAPI. Since these IDs are also used as the AssetId sub-ID for the converted material assets, the system was just checking the material asset sub-ID to determine the material slot ID. But in order to support certain FBX material conversion options, we needed to break this tie, so the slot ID is separate from the AssetId of the material in that slot. This will allow some other material to be used in the slot, instead of being forced to use one that was generated from the FBX.
Here we inttroduce a new struct ModelMaterialSlot which formalizes the concept of material slot, with an ID, display name, and default material assignment. The ID still comes from the MaterialUid like before. The display name is built-in, rather than being parsed out from the asset file name. And the default material assignment can be any material asset, it doesn't have to come from the FBX (or other scene file).

This commit is just the preliminary set of changes. Cursory testing shows that it works pretty well but more testing is needed (and likely some fixes) before merging.

Here is what's left to do...
Add serialization version converters to preserve prior prefab data.
See if we can get rid of GetLabelByAssetId function only rely on the display name inside ModelMaterialSlot.
I'm not sure if the condition for enabling the "Edit Material Instance..." context menu item is correct.
Test actors
Lots more testing in general

Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
4 years ago
Jacob Hilliard 4d618ea619 Profiling: Add more instrumentation
Adds new instrumentation macros throughout the codebase, using the
visualizer to find where current instrumentation is lacking using the
shadowed sponza sample + editor. Some notes from exploring:

- We spend ~5ms in CullingScene: BeginCulling
- PipelineStateCache: Compact usually 1ms
- CompileImageBarriers takes most of the time in CompileResourceBarriers

Signed-off-by: Jacob Hilliard <jhlliar@amazon.com>
4 years ago
antonmic d693ee5dd3 merging latest
Signed-off-by: antonmic <56370189+antonmic@users.noreply.github.com>
4 years ago
antonmic 72f808876c Improvements to pass statistics and SRG debugability
Signed-off-by: antonmic <56370189+antonmic@users.noreply.github.com>
4 years ago
pappeste 97f9ac870d Atom
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
4 years ago
moudgils 1c2f5ab6d5
Add support for LowEndRenderPipeline for mobile and the cleanup associated with it (#2292)
Signed-off-by: moudgils <moudgils@amazon.com>
4 years ago
Qing Tao 9053079a56
ATOM-15935 Adding draw to pass support to DynamicDrawContext (#2248)
The DynamicDrawContext can output to different scopes: Scene, RenderPipeline or RasterPass.
Updated RasterPass so it can handle not only draw calls from Views but also from DynamicDrawContexts.
4 years ago
Steve Pham 38261d0800
Shorten copyright headers by splitting into 2 lines (#2213)
* Updated all copyright headers to split the longer original copyright line into 2 shorter lines

Signed-off-by: Steve Pham <spham@amazon.com>
4 years ago
moudgils 7ef383580e
Metal sync interval support (#2187)
* Metal sync interval support
Add shader name to SRGPool for debugging purposes
Set default value of rpi_vsync_interval to 1

Signed-off-by: moudgils <moudgils@amazon.com>
5 years ago
AMZN-tpeng cd819062f9
[ATOM][RHI][Vulkan][Android] - use bit conversion from enum to check for gpu query type support (#2141)
ATOM-15742

Signed-off-by: Tony Peng <tonypeng@amazon.com>
Signed-off-by: Peng <tonypeng@amazon.com>
5 years ago
Jeremy Ong 11327b59ea
Expose vsync interval with new cvar rpi_vsync_interval and support Vulkan vsync (#2061)
* Expose vsync interval with new cvar rpi_vsync_interval

On change, the rpi_vsync_interval is broadcasted to a new event on
the WindowNotificationBus and all swapchains are recreated with the
new vsync value.

Signed-off-by: Jeremy Ong <jeremycong@gmail.com>

* Add vsync interval support to the Vulkan RHI

Vsync intervals are not intrinsically supported using the Vulkan
swapchain extension. Instead, extra presents are enqueued for each
extra vblank requested past 1. Swapchain recreation is triggered
when transitioning to and from the FIFO presentation mode (when
rpi_vsync_interval transitions from and to 0 respectively).

Signed-off-by: Jeremy Ong <jeremycong@gmail.com>

* Rollback vsync > 1 implementation on Vulkan and leverage *Internal pattern

Signed-off-by: Jeremy Ong <jeremycong@gmail.com>
5 years ago
Chris Galvan e924ed0b86 Merged stabilization/2106 to development; Resolved merge conflicts
Signed-off-by: Chris Galvan <chgalvan@amazon.com>
5 years ago
dmcdiar 4efecb88a5 Merge branch 'stabilization/2106' into Atom/dmcdiar/ATOM-15951 5 years ago
Chris Galvan 3b1873b045 Merged stabilization/2106 -> development (resolved merge conflicts).
Signed-off-by: Chris Galvan <chgalvan@amazon.com>
5 years ago
Qing Tao 6d9230e292
ATOM-15939 Add support to capture attachment for ParentPass (#1887)
* ATOM-15939 Add support to capture attachment for ParentPass
- Moved the attachment read back support to Pass class so it supports both ParentPass and RenderPass.
- Added support to output input or output state of an InputOutput attachment.
- Enabled showing ParentPass attachments in PassTree tool.

Signed-off-by: Tao <qingtao@amazon.com>
5 years ago
dmcdiar 762b3ee582 Suspended ray tracing for DiffuseProbeGrids that are not visible, either off-screen or behind an occlusion culling plane
Added a culling flag that indicates if the cullable object is currently visible in any view

Signed-off-by: dmcdiar <dmcdiar@amazon.com>
5 years ago
nvsickle 14cab097c7 Fix DPI change callback not being wired up correctly.
Signed-off-by: nvsickle <nvsickle@amazon.com>
5 years ago
nvsickle 21dbe8b48f Address review feedback
Signed-off-by: nvsickle <nvsickle@amazon.com>
5 years ago
nvsickle dd20a598b2 Add DPI scaling to IMGUI
Signed-off-by: nvsickle <nvsickle@amazon.com>
5 years ago
nvsickle 6b76eceb1f Add GetDpiScaleFactor to native window API
-This includes implementations of the API for the Editor and Windows, all other platforms will have a 1.0 scale for now

Signed-off-by: nvsickle <nvsickle@amazon.com>
5 years ago
Chris Galvan 40f9761f86 Fixed more copyright header issues caused by script replacement
Signed-off-by: Chris Galvan <chgalvan@amazon.com>
5 years ago
Chris Galvan b9e06e70d9 Fixed copyright header issues per new validator
Signed-off-by: Chris Galvan <chgalvan@amazon.com>
5 years ago
Chris Galvan d7574777a8 Resolved merge conflicts
Signed-off-by: Chris Galvan <chgalvan@amazon.com>
5 years ago
Steve Pham b4a2edec6a
Final update copyright headers to reference license files at the repo root (#1693)
* Final update copyright headers to reference license files at the repo root

Signed-off-by: spham <spham@amazon.com>

* Fix copyright validator unit tests to support the stale O3DE header scenario

Signed-off-by: spham <spham@amazon.com>
5 years ago
Tommy Walton 8d2154af26
Partial fix for LYN-2227 : MeshComponent initialization performance improvement (#1381)
Skip a shader item before creating a shader instance if it's not going to be rendered based on the draw tag. This avoids creating and releasing the shader instance over and over again, which results in a disk write each time during release.
5 years ago
Gene Walters f905b71844 Adding missing o3de copyright headers
Signed-off-by: Gene Walters <genewalt@amazon.com>
5 years ago
Gene Walters 4e14c0069b Merge branch 'upstream/stabilization/2106' into genewalt/gitflow_210628 5 years ago
Tommy Walton 5656736db4
Fix for LYN-3726 : Actor Draw Character Doesn't Work (#1336)
-Re-purposed an unused boolean in RPI::Cullable for previous frame's visiblity to instead represent objects that are hidden in the simulation.
-Updated MeshFeatureProcessor::SetVisible to set this value on the cullable.
-Updated the MeshComponent to handle visiblity changes by not rendering the mesh instead of deactivating and/or reactivating the component.
-Updated the AtomActorInstance to handle changes to the visibility from the ActorComponent.

Tested by creating two entities with static mesh components, on entity hidden and the other visible. Plus three entities with actor components, one where the actor is visible, one where the entity is visible but the 'render character' setting on the actor component is disabled, and one where the 'render character' setting is enabled, but the entity is not visible.

For each of these 5 entities, I added them as 5 loose entities, 5 entities that were children to a parent entity, and a slice with all 5 as children to a parent entity, and tested toggling visibility of the parent entities.

For each of these 3 sets of 5 entities, I added them directly to the level, added them all to a layer where the layer was visible, and added them all to a layer where the layer was not visible, and tested toggling the visibility of the layers.
5 years ago
Chris Santora 7c2f5890b6
Removed unused shader "2" files
Removed unused shader "2" files

Removed unused shader "2" files that were part of a redesign effort, which is now complete on the development branch. These files are not needed for the upcoming release and could cause confusion for other developers.

ATOM-15837 Remove Unused Shader System Related *2 Classes From Stabilization Branch.

Testing: ASV full test suite on dx12 and vulkan. Only saw known issues.

See also https://github.com/aws-lumberyard/o3de-atom-sampleviewer/pull/142

Merge pull request #1585 from aws-lumberyard-dev/santorac/stabilization/2106/RemoveShader2-ATOM-15837
5 years ago
Qing Tao 9ccb65aac4
ATOM-15859 AuxGeom rendering in editor is too expensive (#1582)
* ATOM-15859 AuxGeom rendering in editor is too expensive
- The OrphanBuffer calls is the main reason that AuxGeom FP render is slow.
- Switched to use DynamicBuffer for buffers used in DynamicPrimitiveProcessor
- Added some profiling marks.
- Removed DynamicPrimitiveProcessor per view which was added because of OrphanBuffer can only be called once per frame.
5 years ago
Chris Santora 81247aa0e8 Removed unused shader "2" files that were part of a redesign effort, which is now complete on the development branch. These files are not needed for the upcoming release and could cause confusion for other developers.
ATOM-15837 Remove Unused Shader System Related *2 Classes From Stabilization Branch.

Testing: ASV full test suite on dx12 and vulkan. Only saw known issues.
5 years ago
Mike Balfour 567156b85a
[ATOM-4343] Temporary fix for vegetation raycasts until full solution is implemented. (#1572)
Currently, the first time a raycast is attempted for a model, the raycast will fail and the model's kdtree will asynchronously get built.  This breaks the vegetation system, which expects the queries to always work.  This adds in a brute-force fallback for use while the kdtree is building.  However, other use cases like the Editor mouse cursor selection raycast still should get the current "silent failure" behavior, because otherwise the Editor will lock up for several seconds the first time the mouse moves over an extremely complex model.
5 years ago
moudgils 65f8182520
Fix mac image preview pass. ImagePreviewPass correctly uses the swapchain texture to render into. (#1566)
* Fix ImagePreviewPass on Mac + minor cleanup
5 years ago