shader_notify.h 697 B

123456789101112131415161718192021222324252627282930313233
  1. // Copyright 2020 yuzu Emulator Project
  2. // Licensed under GPLv2 or any later version
  3. // Refer to the license.txt file included.
  4. #pragma once
  5. #include <atomic>
  6. #include <chrono>
  7. #include <optional>
  8. namespace VideoCore {
  9. class ShaderNotify {
  10. public:
  11. [[nodiscard]] int ShadersBuilding() noexcept;
  12. void MarkShaderComplete() noexcept {
  13. ++num_complete;
  14. }
  15. void MarkShaderBuilding() noexcept {
  16. ++num_building;
  17. }
  18. private:
  19. std::atomic_int num_building{};
  20. std::atomic_int num_complete{};
  21. int report_base{};
  22. bool completed{};
  23. int num_when_completed{};
  24. std::chrono::high_resolution_clock::time_point complete_time;
  25. };
  26. } // namespace VideoCore