Statistics.h 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. // Copyright 2008 Dolphin Emulator Project
  2. // Licensed under GPLv2+
  3. // Refer to the license.txt file included.
  4. #pragma once
  5. #include <string>
  6. #include <vector>
  7. #include "Common/CommonTypes.h"
  8. #include "VideoCommon/VideoCommon.h"
  9. struct Statistics
  10. {
  11. int numPixelShadersCreated;
  12. int numPixelShadersAlive;
  13. int numVertexShadersCreated;
  14. int numVertexShadersAlive;
  15. int numTexturesCreated;
  16. int numTexturesUploaded;
  17. int numTexturesAlive;
  18. int numVertexLoaders;
  19. float proj_0, proj_1, proj_2, proj_3, proj_4, proj_5;
  20. float gproj_0, gproj_1, gproj_2, gproj_3, gproj_4, gproj_5;
  21. float gproj_6, gproj_7, gproj_8, gproj_9, gproj_10, gproj_11, gproj_12, gproj_13, gproj_14, gproj_15;
  22. float g2proj_0, g2proj_1, g2proj_2, g2proj_3, g2proj_4, g2proj_5;
  23. float g2proj_6, g2proj_7, g2proj_8, g2proj_9, g2proj_10, g2proj_11, g2proj_12, g2proj_13, g2proj_14, g2proj_15;
  24. std::vector<EFBRectangle> efb_regions;
  25. struct ThisFrame
  26. {
  27. int numBPLoads;
  28. int numCPLoads;
  29. int numXFLoads;
  30. int numBPLoadsInDL;
  31. int numCPLoadsInDL;
  32. int numXFLoadsInDL;
  33. int numPrims;
  34. int numDLPrims;
  35. int numShaderChanges;
  36. int numPrimitiveJoins;
  37. int numDrawCalls;
  38. int numDListsCalled;
  39. int bytesVertexStreamed;
  40. int bytesIndexStreamed;
  41. int bytesUniformStreamed;
  42. };
  43. ThisFrame thisFrame;
  44. void ResetFrame();
  45. static void SwapDL();
  46. static std::string ToString();
  47. static std::string ToStringProj();
  48. };
  49. extern Statistics stats;
  50. #define STATISTICS
  51. #ifdef STATISTICS
  52. #define INCSTAT(a) (a)++;
  53. #define DECSTAT(a) (a)--;
  54. #define ADDSTAT(a,b) (a)+=(b);
  55. #define SETSTAT(a,x) (a)=(int)(x);
  56. #define SETSTAT_UINT(a,x) (a)=(u32)(x);
  57. #define SETSTAT_FT(a,x) (a)=(float)(x);
  58. #else
  59. #define INCSTAT(a) ;
  60. #define ADDSTAT(a,b) ;
  61. #define SETSTAT(a,x) ;
  62. #endif