Device.h 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  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/Device.h>
  11. #include <AzCore/Memory/SystemAllocator.h>
  12. #include <Atom/RHI.Reflect/Limits.h>
  13. namespace UnitTest
  14. {
  15. static constexpr auto DeviceCount{8};
  16. static constexpr AZ::RHI::MultiDevice::DeviceMask DeviceMask{AZ::RHI::MultiDevice::AllDevices};
  17. class PhysicalDevice
  18. : public AZ::RHI::PhysicalDevice
  19. {
  20. public:
  21. AZ_CLASS_ALLOCATOR(PhysicalDevice, AZ::SystemAllocator);
  22. static AZ::RHI::PhysicalDeviceList Enumerate();
  23. private:
  24. PhysicalDevice();
  25. };
  26. class Device
  27. : public AZ::RHI::Device
  28. {
  29. public:
  30. AZ_CLASS_ALLOCATOR(Device, AZ::SystemAllocator);
  31. Device();
  32. private:
  33. AZ::RHI::ResultCode InitInternal(AZ::RHI::PhysicalDevice&) override { return AZ::RHI::ResultCode::Success; }
  34. AZ::RHI::ResultCode InitInternalBindlessSrg([[maybe_unused]] const AZ::RHI::BindlessSrgDescriptor& bindlessSrgDesc) override { return AZ::RHI::ResultCode::Success;}
  35. void ShutdownInternal() override {}
  36. AZ::RHI::ResultCode BeginFrameInternal() override { return AZ::RHI::ResultCode::Success; }
  37. void EndFrameInternal() override {}
  38. void WaitForIdleInternal() override {}
  39. void CompileMemoryStatisticsInternal(AZ::RHI::MemoryStatisticsBuilder&) override {}
  40. void UpdateCpuTimingStatisticsInternal() const override {}
  41. AZStd::chrono::microseconds GpuTimestampToMicroseconds([[maybe_unused]] uint64_t gpuTimestamp, [[maybe_unused]] AZ::RHI::HardwareQueueClass queueClass) const override
  42. {
  43. return AZStd::chrono::microseconds();
  44. }
  45. AZStd::pair<uint64_t, uint64_t> GetCalibratedTimestamp([[maybe_unused]] AZ::RHI::HardwareQueueClass queueClass) override
  46. {
  47. return { 0ull, AZStd::chrono::microseconds().count() };
  48. }
  49. void FillFormatsCapabilitiesInternal([[maybe_unused]] FormatCapabilitiesList& formatsCapabilities) override {}
  50. AZ::RHI::ResultCode InitializeLimits() override { return AZ::RHI::ResultCode::Success; }
  51. void PreShutdown() override {}
  52. AZ::RHI::ResourceMemoryRequirements GetResourceMemoryRequirements([[maybe_unused]] const AZ::RHI::ImageDescriptor& descriptor) { return AZ::RHI::ResourceMemoryRequirements{}; };
  53. AZ::RHI::ResourceMemoryRequirements GetResourceMemoryRequirements([[maybe_unused]] const AZ::RHI::BufferDescriptor& descriptor) { return AZ::RHI::ResourceMemoryRequirements{}; };
  54. void ObjectCollectionNotify(AZ::RHI::ObjectCollectorNotifyFunction notifyFunction) override {}
  55. AZ::RHI::ShadingRateImageValue ConvertShadingRate([[maybe_unused]] AZ::RHI::ShadingRate rate) const override
  56. {
  57. return AZ::RHI::ShadingRateImageValue{};
  58. }
  59. };
  60. AZ::RHI::Ptr<AZ::RHI::Device> MakeTestDevice();
  61. }