Commit Graph

411 Commits

Author SHA1 Message Date
Chris Galvan 445385e146 Merge pull request #7617 from Bindless-Chicken/fix-assert-resource
Fix missing format parameter in RHI::Resource
2022-02-18 15:17:16 -06:00
Tommy Walton 7de6bc5b23 Add RoundUpToMultiple and DivideAndRoundUp functions to MathUtils.h (#6989)
* Add RoundUpToMultiple and DivideAndRoundUp functions to MathUtils.h

Signed-off-by: Tommy Walton <waltont@amazon.com>

* Rename DivideByMultiple2 back to DivideByMultiple, now that I've confirmed it's not in use in the codebase. RHI::DivideByMultiple can be fully deprecated in favor of AZ::DivideAndRoundUp at a later date, once the deprecation strategy has been finalized.

Signed-off-by: Tommy Walton <waltont@amazon.com>

* Update based on PR feedback

Signed-off-by: Tommy Walton <waltont@amazon.com>

* Switched from std::numeric_limits to AZStd::numeric_limits and updated the header to indicate it works for non-power of two alignments, but that SizeAlignUp is more efficient if the alignment is a power of 2

Signed-off-by: Tommy Walton <waltont@amazon.com>

* Added missing arguments to the assert, and a missing namespace and include that failed to compile on non-unity builds

Signed-off-by: Tommy Walton <waltont@amazon.com>
2022-02-18 12:29:44 -08:00
Thomas Poulet a3e33f0c4f Add a debug message to renderdoc cmake like for PIX (#7715)
Signed-off-by: Bindless-Chicken <1039134+Bindless-Chicken@users.noreply.github.com>
2022-02-17 11:07:51 -08:00
jromnoa 949ce436bb sets AllowDescriptorHeapCompaction to true instead of false so AR doesn't time out
Signed-off-by: jromnoa <80134229+jromnoa@users.noreply.github.com>
2022-02-16 18:14:40 -08:00
moudgils 4bf6b6ba15 Add 3p vulkan validation layer support. (#7540)
* Add 3p vulkan validation layer support. Enabling device validation will automatically load the VkLayer_khronos_validation.dll ensuring that validation checks will work correctly

Signed-off-by: moudgils <47460854+moudgils@users.noreply.github.com>

* Addressed feedback

Signed-off-by: moudgils <47460854+moudgils@users.noreply.github.com>

* Updating the hash to the new 3p package

Signed-off-by: moudgils <47460854+moudgils@users.noreply.github.com>
2022-02-15 10:22:32 -08:00
Bindless-Chicken 9da156d0a6 Fix missing format parameter in RHI::Resource
Signed-off-by: Bindless-Chicken <1039134+Bindless-Chicken@users.noreply.github.com>
2022-02-14 09:17:53 +00:00
Chris Burel bdac374775 Fix case-insensitive non-portable include paths
Signed-off-by: Chris Burel <burelc@amazon.com>
2022-02-10 15:36:22 -08:00
Chris Burel fc2fc8459b Fix missing return; statement (this is why we use -Wunused-value)
Signed-off-by: Chris Burel <burelc@amazon.com>
2022-02-10 15:36:21 -08:00
Jeremy Ong aec7b58c39 Introduce Atom/GraphicsDevMode settings registry key
When `"Atom": {"GraphicsDevMode": true}` is found in a `.setreg` file,
PDBs for all shaders will be emitted to their corresponding output
locations. This allows global PDB generation without needing to
explicitly modify each `.shader` file to include the `GenerateDebugInfo`
compilation option.

Signed-off-by: Jeremy Ong <jcong@amazon.com>
2022-02-10 02:27:49 -07:00
Sergey Pereslavtsev 01cac7871b PipelineState build fix for non-unity builds
Signed-off-by: Sergey Pereslavtsev <pereslav@amazon.com>
2022-02-08 13:11:27 +00:00
antonmic 4216e4cfed Added support for hardware queue class on passes (#7339)
* Added support for hardware queue class on passes. Compute pass data and copy pass data can now specify to run on their appropriate queue.

Signed-off-by: antonmic <56370189+antonmic@users.noreply.github.com>

* addressed PR feedaback

Signed-off-by: antonmic <56370189+antonmic@users.noreply.github.com>

* fixing python test failures on AR

Signed-off-by: antonmic <56370189+antonmic@users.noreply.github.com>
2022-02-03 16:37:42 -08:00
moudgils 608411ab99 Metal pso caching support via MTLBinaryArchive (#7212)
* PipelineLibrary (PSO Caching) support for Metal

- API changes to handle Metal drivers implictly doing save/load of PipelineLibrary data
- Fixed up code related to Metal device selection
- PipelineLibrary support for Mac and ios

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

* Fix compile errors for Dx12, Vulkan backend + Unit tests

Signed-off-by: moudgils <47460854+moudgils@users.noreply.github.com>

* Fixed errors related to M1 GPU

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

* Fix a minor 'tab' validation issue

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

* Addressed feedback

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

* Minor feedback

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

* Added a few asserts

Signed-off-by: moudgils <47460854+moudgils@users.noreply.github.com>

* Fix a typo

Signed-off-by: moudgils <moudgils@amazon.com>
2022-02-02 10:50:37 -08:00
dmcdiarmid-ly 7413842227 Merge pull request #7275 from aws-lumberyard-dev/Atom/dmcdiar/ATOM-13886
DiffuseProbeGrid Visualization
2022-02-01 14:47:01 -07:00
AMZN-nggieber f5fcab75d6 Display Gem Icons in Gem Catalog (#7294)
Signed-off-by: nggieber <52797929+AMZN-nggieber@users.noreply.github.com>

Co-authored-by: Alex Peterson <26804013+AMZN-alexpete@users.noreply.github.com>
2022-01-31 17:06:06 -08:00
dmcdiarmid-ly 5f7a30f8da Added DiffuseProbeGrid Visualization passes, shaders, and editor controls.
Changed the DiffuseGI passes to override IsEnabled() instead of exiting early from FrameBeginInternal.

Signed-off-by: dmcdiarmid-ly <63674186+dmcdiarmid-ly@users.noreply.github.com>
2022-01-29 19:37:46 -07:00
lumberyard-employee-dm b9824ed172 Updated all array_view uses with the C++20 span. (#7157)
* Updated all array_view uses with the C++20 span.

The updates were done in the following order
1. `AZStd::array_view<([^>].+)\* ?>`  -> `AZStd::span<\1 const>`
2. `AZStd::array_view<(?:const )(.+)>` -> `AZStd::span<const \1>`
3. `AZStd::array_view` -> `AZStd::span`

Removed the implementation of array_view.

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Added missing whitespace between `const` and the typename for spans.

Updated the ShaderTest comparison of the ShaderResourceGroupLayout span
to compare the sizes as well

Updated comments on some of the methods that stated that they return "an
array" to mention they return "a span".

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
2022-01-26 16:15:47 -06:00
lumberyard-employee-dm 52f1ef84c7 Fixed string_view compilation in GCC 10+. (#7153)
* Fixed string_view compilation in GCC 10+.

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* More GCC 10+ Fixes.

GCC 11 seems to have an issue with linkage regarding using a lambda as a default parameter in a function declaration.

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* GCC10+ Fix - Fixed binding to a temporary references.

> error: loop variable ‘pathName’ of type ‘const QString&’ binds to a temporary constructed from type ‘const char* const’ [-Werror=range-loop-construct]
  415 |     for (const QString& pathName : { "CrySystem",

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
2022-01-26 14:20:01 -06:00
Esteban Papp 75f511d851 Merge pull request #6390 from aws-lumberyard-dev/memory/overrideshim_removal
Memory/overrideshim removal
2022-01-26 08:15:20 -08:00
lumberyard-employee-dm f3e9e41f4f Adding partial implementation of C++20 concepts and range functions for AZStd::span (#7102)
* Adding partial implementation of C++20 concepts and range functions for AZStd::span

The new concepts to discovered existing issues with the PathIterator and deque::iterator classes
PathIterator wasn't properly an input_iterator and therefore the Path classes weren't a range due to an incorrect const_iterator alias
The deque::iterator classes was missing the operator+ friend function that accepted a (ptrdiff_t, deque::iterator) to fulfill the random_access_iterator concepts

The AZStd implementations of (uninitialized_)copy(_n), (uninitialized_)move(_n) and (uninitialized_)file(_n) have been optimized to use memcpy and memset based on fulfilling the contiguous_iterator concept

Fixed invalid AZStd::vector inserts in FrameGraphExecuter.cpp and SliceditorEntityOwnershipService.cpp
The code was trying to copy the underlying addresses for vector<unique_ptr> to a vector<raw pointer> using insert, which it was doing by using memcpy.

relates to #6749

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Fixed the `fixed_vector` emplace function to not move initialized
elements using uninitialized_move.

This was causing initialized elements of the fixed_vector to be
overwritten with the element at the emplace position.

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Fixed clang warnings about variables that are set, but never read

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Updated the `az_has_builtin_is_constant_evaluated` define to not have
"()" as is not a macro.

This helps prevent users from using `az_has_builtin_is_constant_evaluated`
define in a situation where they want to know if the function is being
evaluated in a compile time context.
In that case they need to use the `az_builtin_is_constant_evaluated()`
macro (which of course looks quite similiar) but does not have the word
"has" in it..

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Updated the AZStd span class to be C++20 compliant.

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Changed phrase "DoesNotCompiles" to be more grammatically correct.

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Added more unit test for AZStd span

Fixed an the the return type of the subspan template overload to account
for the source span having a dynamic extent.

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Removed unused variable from span unit test.

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
2022-01-24 17:09:08 -06:00
Daniel Edwards 0a5f472f43 Clang 13: Fix build errors ...
... due to local variables only being written to (but never read).

Signed-off-by: Daniel Edwards <dev@danieledwards.de>
2022-01-23 22:29:03 +01:00
Esteban Papp c978e12efc Merge branch 'development' into memory/overrideshim_removal
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
2022-01-20 13:43:12 -08:00
AMZN-byrcolin 63d755b8f1 fix launcher not showing gems (#7015)
Signed-off-by: byrcolin <byrcolin@amazon.com>
2022-01-19 17:09:40 -08:00
moudgils d95e157f48 Different Pso cache per vendor/driver (#6893)
* Support to add a different PSO cache per vendor/driver version. Also added support to have a differnt cache for Warp

Signed-off-by: moudgils <47460854+moudgils@users.noreply.github.com>

* Added a way to reset PSO cache for everyone

Signed-off-by: moudgils <47460854+moudgils@users.noreply.github.com>

* Fix tabbing for one line which is failing validation

Signed-off-by: moudgils <47460854+moudgils@users.noreply.github.com>
2022-01-14 12:24:58 -08:00
AMZN-byrcolin c778606c89 Templates restricted (#6498)
* Templates/Restricted upgrade/fixes:
Fixed template storage format: templates now only store true relative paths and no longer save "origin" paths and "optional" has been removed, it was never used.
Upgraded all templates to new standard
Template system now correctly handles child objects: Child objects no longer have to specify restricted they inherit from parent
Restricted now operates at the object level and makes no assumptions about parent
Restricted templates can now be combined and seperated on creation
ly_get_list_relative_filename has been deprecated for o3de_pal_dir
All Gems/Projects/Templates updated to use new code

Signed-off-by: byrcolin <byrcolin@amazon.com>
2022-01-14 10:27:20 -08:00
Esteban Papp 54e0b8b7b5 Enabling mac tests (#6716)
* Adds mac test job

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* Points to sysctl properly to handle zsh

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* Fixes some macos differences with Linux when reading the CTEST_RUN_FLAGS parameters

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* adding the test job to the profile pipe

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* Disables some tests in Mac that are not passing

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* passes config to cli_test_driver and sets the right trait for the test (pytest instead of lytesttools)

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* Set proper traits for AtomRHI

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* Corrected AZ_TRAIT_UNIT_TEST_PERLINE_GRADIANT_GOLDEN_VALUES_7878 values for Mac

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* Disables EMotionFX tests in Mac

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* Removes debugging prints

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* Removes filters that were meant just for Linux

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* quotes are re-quoted in the test_mac.sh script

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
2022-01-06 16:16:48 -08:00
Esteban Papp ddbcc68106 Merge branch 'development' into memory/overrideshim_removal
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

# Conflicts:
#	Code/Framework/AzCore/AzCore/Memory/AllocatorBase.cpp
#	Code/Framework/AzCore/AzCore/Memory/BestFitExternalMapAllocator.cpp
#	Code/Framework/AzCore/AzCore/Memory/BestFitExternalMapSchema.cpp
#	Code/Framework/AzCore/AzCore/Memory/PoolSchema.cpp
#	Code/Framework/AzCore/AzCore/Memory/SystemAllocator.cpp
#	Code/Framework/AzCore/Tests/Memory/AllocatorBenchmarks.cpp
2022-01-05 11:34:52 -08:00
Chris Galvan 7c8d1cdf8c Merge pull request #6258 from aws-lumberyard-dev/Network/olexl/rhi_compile_fixes
Network/olexl/rhi compile fixes
2022-01-04 11:29:27 -06:00
Mike Balfour 17f928cddd Removed chatty profile markers. (#6556)
* Removed chatty profile markers.
These 4 markers removed tens of thousands of events, which reduced an example capture from 1685 ms to 1614 ms and made it far more readable.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Restored one marker

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
2021-12-23 11:53:17 -06:00
rgba16f d5e6ec5758 Change the nvidia Aftermath integration to use c strings directly rather than convert to an AZStd::string (#6535)
Signed-off-by: rgba16f <82187279+rgba16f@users.noreply.github.com>
2021-12-22 11:30:32 -06:00
rgba16f 67689d48cc Add precise keyword to the depth and forward pass shaders. (#6536)
* Add precise keyword to the depth and forward pass shaders. Make sure metal shader pipeline passes the invariant along

Signed-off-by: rgba16f <82187279+rgba16f@users.noreply.github.com>

* Update with VickyAtAZ's feedback, split the preserve invariance into a separate string

Signed-off-by: rgba16f <82187279+rgba16f@users.noreply.github.com>

* Fix attribute comment alignment in the shaders

Signed-off-by: rgba16f <82187279+rgba16f@users.noreply.github.com>
2021-12-22 11:29:48 -06:00
bosnichd d5b9cf10cf Collection of miscellaneous PAL changes required for restricted platforms. (#6482)
Signed-off-by: bosnichd <bosnichd@amazon.com>
2021-12-20 08:15:10 -07:00
rgba16f f82b329291 Minor optimizations from profiling. (#6416)
Remove noisy profile marker in the SRG validator
Make the SRG compile marker say which srg is being compiled
Move some dx12 validation code behind the AZ_RHI_ENABLE_VALIDATION define

Signed-off-by: rgba16f <82187279+rgba16f@users.noreply.github.com>
2021-12-15 15:06:05 -06:00
dmcdiarmid-ly d5980da3d4 Merge pull request #6377 from aws-lumberyard-dev/Atom/dmcdiar/ATOM-16886
Vulkan validation fixes for RayTracing
2021-12-13 12:46:53 -07:00
dmcdiarmid-ly da8967d570 Minor change to comments
Signed-off-by: dmcdiarmid-ly <63674186+dmcdiarmid-ly@users.noreply.github.com>
2021-12-13 12:03:40 -07:00
rgba16f c444978648 Change Vulkan RHI CommandList::SetStreamBuffers to not do 2 memory allocation per draw by using fixed_vector
This takes the high instance test from 20fps to 44fps in my local testing.

Signed-off-by: rgba16f 82187279+rgba16f@users.noreply.github.com
2021-12-13 12:23:13 -06:00
Steve Pham f2c9a217da Revert previous update to ConstantsData::SetConstantArray<bool> and fix unit tests (#6351)
Signed-off-by: Steve Pham <82231385+spham-amzn@users.noreply.github.com>
2021-12-13 08:51:30 -08:00
dmcdiarmid-ly 4d187b0980 Minor changes to RayTracingScratchBuffer flag.
Signed-off-by: dmcdiarmid-ly <63674186+dmcdiarmid-ly@users.noreply.github.com>
2021-12-12 18:43:12 -07:00
dmcdiarmid-ly 497fe8eccc Fixes for Vulkan validation warnings related to RayTracing and DiffuseGI.
Signed-off-by: dmcdiarmid-ly <63674186+dmcdiarmid-ly@users.noreply.github.com>
2021-12-12 18:02:25 -07:00
rgba16f ab859d1979 Change Vulkan RHI CommandList::SetStreamBuffers to not do 2 memory allocation per draw by using fixed_vector
Signed-off-by: rgba16f <82187279+rgba16f@users.noreply.github.com>
2021-12-10 19:08:18 -06:00
Steve Pham 4670003aaf Fix failed Atom rpi tests linux (#6319)
- Remove trait AZ_TRAIT_DISABLE_FAILED_ATOM_RPI_TESTS
- Add template specialization for ConstantsData::SetConstant<Color> and ConstantsData::GetConstant<Color>
- Remove trait AZ_TRAIT_DISABLE_FAILED_ATOM_RPI_TESTS from source code
- Fix ConstantsData::SetConstantArray<bool> to pass unit test SetConstant_GetConstant_FalsePackedInGarbage_Bool on Linux, cause by an unwanted optimization (comments describe the situation). This will make this behavior consistent across platforms

Signed-off-by: Steve Pham <82231385+spham-amzn@users.noreply.github.com>
2021-12-10 14:54:08 -08:00
Qing Tao 73f44684e8 Fixed SRG compile issue with metal which leads to multiple gpu crashes inlucde ImGuiPass render crash (#6315)
Signed-off-by: Qing Tao <55564570+VickyAtAZ@users.noreply.github.com>
2021-12-10 09:53:02 -08:00
moudgils 2aecf9557c Fixed SRG updated related crash (#6317)
Signed-off-by: moudgils <47460854+moudgils@users.noreply.github.com>
2021-12-10 09:26:41 -08:00
Esteban Papp 947adc0248 Removal of OverrideShim, AP seems to be crashing
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
2021-12-09 17:13:09 -08:00
moudgils 3540974b08 Multiple bug fixes (#6221)
* 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>
2021-12-09 09:45:45 -08:00
AMZN-Olex d39ae32f2d Cleanup
Signed-off-by: AMZN-Olex <5432499+AMZN-Olex@users.noreply.github.com>
2021-12-08 14:32:20 -05:00
AMZN-Olex b5e61356b1 Compile time fixes for AZ_PROFILE macros
Signed-off-by: AMZN-Olex <5432499+AMZN-Olex@users.noreply.github.com>
2021-12-08 14:30:45 -05:00
Esteban Papp e79d79ec45 Fixes some missing includes/declaring budgets (#6238)
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
2021-12-08 09:53:37 -08:00
Steve Pham 558532f094 Process launcher updates (#6183)
* Enable process and ap connection tests on linux
* Updated 'OpenProjectManager' to use new the ProcessLauncher argument type
* Add logic to double-escape escaped double quotes in arguments on windows platforms
* Updated argument for LaunchProjectManager to reflect new ProcessLauncher argument type
* Fixed unit test arguments for 'arg=value' condition
* Fix compile errors for BuilderManager and RHI.Edit\Utils.cpp
* PAL'ify the GetCommandLineParametersAsString() to handle windows specific behavior

Signed-off-by: Steve Pham <82231385+spham-amzn@users.noreply.github.com>

Co-authored-by: byrcolin <byrcolin@amazon.com>
2021-12-08 09:30:19 -08:00
Esteban Papp 3f86f31f2a Redcode/driller removal
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
2021-12-07 15:43:26 -08:00
Esteban Papp 5cca52e73c Merge branch 'development' into redcode/driller_removal
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

# Conflicts:
#	Code/Framework/AzCore/AzCore/azcore_files.cmake
#	Gems/Atom/Feature/Common/Assets/Materials/Presets/MacBeth/15_red_sRGB.tif
2021-12-07 13:31:55 -08:00