PipelineState.h 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. /*
  2. * Copyright (c) Contributors to the Open 3D Engine Project.
  3. * For complete copyright and license terms please see the LICENSE at the root of this distribution.
  4. *
  5. * SPDX-License-Identifier: Apache-2.0 OR MIT
  6. *
  7. */
  8. #pragma once
  9. #include <AzCore/UnitTest/TestTypes.h>
  10. #include <Atom/RHI/DevicePipelineLibrary.h>
  11. #include <Atom/RHI/DevicePipelineState.h>
  12. #include <AzCore/Memory/SystemAllocator.h>
  13. namespace UnitTest
  14. {
  15. class PipelineLibrary
  16. : public AZ::RHI::DevicePipelineLibrary
  17. {
  18. public:
  19. AZ_CLASS_ALLOCATOR(PipelineLibrary, AZ::SystemAllocator);
  20. AZStd::unordered_map<uint64_t, const AZ::RHI::DevicePipelineState*> m_pipelineStates;
  21. private:
  22. AZ::RHI::ResultCode InitInternal(AZ::RHI::Device&, const AZ::RHI::DevicePipelineLibraryDescriptor&) override { return AZ::RHI::ResultCode::Success; }
  23. void ShutdownInternal() override;
  24. AZ::RHI::ResultCode MergeIntoInternal(AZStd::span<const AZ::RHI::DevicePipelineLibrary* const>) override;
  25. AZ::RHI::ConstPtr<AZ::RHI::PipelineLibraryData> GetSerializedDataInternal() const override { return nullptr; }
  26. bool SaveSerializedDataInternal([[maybe_unused]] const AZStd::string& filePath) const override { return false; }
  27. };
  28. class PipelineState
  29. : public AZ::RHI::DevicePipelineState
  30. {
  31. public:
  32. AZ_CLASS_ALLOCATOR(PipelineState, AZ::SystemAllocator);
  33. private:
  34. AZ::RHI::ResultCode InitInternal(AZ::RHI::Device&, const AZ::RHI::PipelineStateDescriptorForDraw&, AZ::RHI::DevicePipelineLibrary*) override;
  35. AZ::RHI::ResultCode InitInternal(AZ::RHI::Device&, const AZ::RHI::PipelineStateDescriptorForDispatch&, AZ::RHI::DevicePipelineLibrary*) override;
  36. AZ::RHI::ResultCode InitInternal(AZ::RHI::Device&, const AZ::RHI::PipelineStateDescriptorForRayTracing&, AZ::RHI::DevicePipelineLibrary*) override;
  37. void ShutdownInternal() override {}
  38. };
  39. }