Merge branch 'development' into Atom/dmcdiar/ATOM-5702

This commit is contained in:
Doug McDiarmid
2021-06-18 17:12:52 -07:00
539 changed files with 30395 additions and 19441 deletions
@@ -138,6 +138,12 @@ namespace AZ
//! Without per draw viewport, the viewport setup in pass is usually used.
void UnsetViewport();
//! Set stencil reference for following draws which are added to this DynamicDrawContext
void SetStencilReference(uint8_t stencilRef);
//! Get the current stencil reference.
uint8_t GetStencilReference() const;
//! Draw Indexed primitives with vertex and index data and per draw srg
//! The per draw srg need to be provided if it's required by shader.
void DrawIndexed(void* vertexData, uint32_t vertexCount, void* indexData, uint32_t indexCount, RHI::IndexFormat indexFormat, Data::Instance < ShaderResourceGroup> drawSrg = nullptr);
@@ -204,10 +210,13 @@ namespace AZ
bool m_useScissor = false;
RHI::Scissor m_scissor;
// current scissor
// current viewport
bool m_useViewport = false;
RHI::Viewport m_viewport;
// Current stencil reference value
uint8_t m_stencilRef = 0;
// Cached RHI pipeline states for different combination of render states
AZStd::unordered_map<HashValue64, const RHI::PipelineState*> m_cachedRhiPipelineStates;
@@ -32,6 +32,7 @@ namespace AZ
: public Data::InstanceData
{
friend class ModelSystem;
public:
AZ_INSTANCE_DATA(Model, "{C30F5522-B381-4B38-BBAF-6E0B1885C8B9}");
AZ_CLASS_ALLOCATOR(Model, AZ::SystemAllocator, 0);
@@ -53,8 +54,6 @@ namespace AZ
//! Returns whether a buffer upload is pending.
bool IsUploadPending() const;
const AZ::Aabb& GetAabb() const;
const Data::Asset<ModelAsset>& GetModelAsset() const;
//! Checks a ray for intersection against this model. The ray must be in the same coordinate space as the model.
@@ -105,8 +104,6 @@ namespace AZ
// Tracks whether buffers have all been streamed up to the GPU.
bool m_isUploadPending = false;
AZ::Aabb m_aabb;
};
} // namespace RPI
} // namespace AZ
@@ -265,6 +265,12 @@ namespace AZ
// Update all bindings on this pass that are connected to bindings on other passes
void UpdateConnectedBindings();
// Update input and input/output bindings on this pass that are connected to bindings on other passes
void UpdateConnectedInputBindings();
// Update output bindings on this pass that are connected to bindings on other passes
void UpdateConnectedOutputBindings();
protected:
explicit Pass(const PassDescriptor& descriptor);
@@ -57,6 +57,20 @@ namespace AZ
}
#endif
}
//! Prints a generic message at the appropriate indent level.
template<typename ... Args>
static void Printf([[maybe_unused]] const char* format, [[maybe_unused]] Args... args)
{
#ifdef AZ_ENABLE_SHADER_RELOAD_DEBUG_TRACKER
if (IsEnabled())
{
const AZStd::string message = AZStd::string::format(format, args...);
AZ_TracePrintf("ShaderReloadDebug", "%*s %s \n", s_indent, "", message.c_str());
}
#endif
}
//! Use this utility to call BeginSection(), and automatically call EndSection() when the object goes out of scope.
class ScopedSection final