You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
o3de/Gems/AtomLyIntegration/CommonFeatures/Code/Source
santorac 5b04183b4e
Material System Reports Warnings About PSO-Impacting Changes
Merge pull request #4102 from aws-lumberyard-dev/Atom/santorac/WarnOnMaterialPsoChanges

These changes make material system report warnings when gameplay scripts attempt to change PSO-impacting material properties at runtime. So far the material system has always allowed any properties to be changed at runtime, including those that affect Pipeline State Objects (PSOs), as this is supported on several platforms. But some platforms require that Pipeline State Objects be pre-compiled and shipped with the game. At some point we will need to add new restrictions that limit what material properties can be changed at runtime. In the meantime, these warnings should alert users to avoid this, as the functionality likely won't be supported in the future.

- Made the Material and LuaMaterialFunctor classes configurable to report errors or warnings when material properties modify Pipeline State Objects. This is controlled by a new "MaterialPropertyPsoHandling" enum.
- Made the EditorMaterialComponent override PSO handling as Enabled, to prevent warnings when the user is editing material instance property overrides. This requried a new MaterialComponentNotificationBus bus message "OnMaterialInstanceCreated".
- Added a new ScopedValue utility class that simply sets a value when it goes out of scope.
- Removed unnecessary GetMaterialPropertyDependencies member from material functor context classes, as this is already available as part of the functor itself.
- Made Material::SetPropertyValue return early when the property value hadn't actually changed. Besides being more efficientn, this prevents unnecessary spamming of the new warning.
- Made a couple imporvements to material_find_overrides_demo.lua: 
  - Made the target material slot name configurable through an exposed component property. 
  - Fixed a timing issue where the assignmentId was invalid if FindMaterialAssignmentId is called too early.
5 years ago
..
Animation Gems/Atom* 5 years ago
CoreLights Merge branch 'development' into cmake/warn_virtual 5 years ago
Decals LYN-4774 Fix missing box icons inside the main Viewport (#2297) 5 years ago
DiffuseGlobalIllumination LYN-4774 Fix missing box icons inside the main Viewport (#2297) 5 years ago
Grid LYN-4774 Fix missing box icons inside the main Viewport (#2297) 5 years ago
ImageBasedLights LYN-4774 Fix missing box icons inside the main Viewport (#2297) 5 years ago
Material These changes make material system report warnings when gameplay scripts attempt to change PSO-impacting material properties at runtime. So far the material system has always allowed any properties to be changed at runtime, including those that affect Pipeline State Objects (PSOs), as this is supported on several platforms. But some platforms require that Pipeline State Objects be pre-compiled and shipped with the game. At some point we will need to add new restrictions that limit what material properties can be changed at runtime. In the meantime, these warnings should alert users to avoid this, as the functionality likely won't be supported in the future. 5 years ago
Mesh Gems/Atom* 5 years ago
OcclusionCullingPlane LYN-4774 Fix missing box icons inside the main Viewport (#2297) 5 years ago
Platform Shorten copyright headers by splitting into 2 lines (#2213) 5 years ago
PostProcess Build time reduction: AzStdOnDemandReflection (#3111) 5 years ago
ReflectionProbe LYN-4774 Fix missing box icons inside the main Viewport (#2297) 5 years ago
ScreenSpace LYN-4774 Fix missing box icons inside the main Viewport (#2297) 5 years ago
Scripting LYN-4774 Fix missing box icons inside the main Viewport (#2297) 5 years ago
SkinnedMesh Shorten copyright headers by splitting into 2 lines (#2213) 5 years ago
SkyBox LYN-4774 Fix missing box icons inside the main Viewport (#2297) 5 years ago
SurfaceData Remove extra/bad profile markers (#4031) 5 years ago
Thumbnails ATOM-16063 Remove SetShaderResourceGroupCallback in scene and update scene srg handling (#3969) 5 years ago
CommonFeaturesSystemComponent.cpp Shorten copyright headers by splitting into 2 lines (#2213) 5 years ago
CommonFeaturesSystemComponent.h Shorten copyright headers by splitting into 2 lines (#2213) 5 years ago
EditorCommonFeaturesSystemComponent.cpp Shorten copyright headers by splitting into 2 lines (#2213) 5 years ago
EditorCommonFeaturesSystemComponent.h Shorten copyright headers by splitting into 2 lines (#2213) 5 years ago
Module.cpp Shorten copyright headers by splitting into 2 lines (#2213) 5 years ago