Merge pull request #15721 from sethalves/quiet-asan-gpu-stats

BUGZ-623: Quiet asan gpu stats
This commit is contained in:
Brad Hefta-Gaub 2019-06-12 09:02:13 -07:00 committed by GitHub
commit 35cdd19456
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 34 additions and 24 deletions

View file

@ -262,7 +262,7 @@ class Stats : public QQuickItem {
STATS_PROPERTY(int, processing, 0) STATS_PROPERTY(int, processing, 0)
STATS_PROPERTY(int, processingPending, 0) STATS_PROPERTY(int, processingPending, 0)
STATS_PROPERTY(int, triangles, 0) STATS_PROPERTY(int, triangles, 0)
STATS_PROPERTY(int, drawcalls, 0) STATS_PROPERTY(uint32_t, drawcalls, 0)
STATS_PROPERTY(int, materialSwitches, 0) STATS_PROPERTY(int, materialSwitches, 0)
STATS_PROPERTY(int, itemConsidered, 0) STATS_PROPERTY(int, itemConsidered, 0)
STATS_PROPERTY(int, itemOutOfView, 0) STATS_PROPERTY(int, itemOutOfView, 0)

View file

@ -309,7 +309,7 @@ void GLBackend::setResourceTexture(unsigned int slot, const TexturePointer& reso
glActiveTexture(GL_TEXTURE0 + slot); glActiveTexture(GL_TEXTURE0 + slot);
glBindTexture(textureState._target, to); glBindTexture(textureState._target, to);
(void)CHECK_GL_ERROR(); (void)CHECK_GL_ERROR();
_stats._RSAmountTextureMemoryBounded += (int)object->size(); _stats._RSAmountTextureMemoryBounded += (uint64_t)object->size();
} else { } else {
releaseResourceTexture(slot); releaseResourceTexture(slot);

View file

@ -8,6 +8,7 @@
// Distributed under the Apache License, Version 2.0. // Distributed under the Apache License, Version 2.0.
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
// //
#include <limits>
#include "Context.h" #include "Context.h"
#include <shared/GlobalAppProperties.h> #include <shared/GlobalAppProperties.h>
@ -18,19 +19,28 @@
using namespace gpu; using namespace gpu;
template<typename T>
T subWrap(T endValue, T beginValue) {
if (endValue >= beginValue) {
return endValue - beginValue;
} else {
return endValue + ((std::numeric_limits<T>::max() - beginValue) + 1);
}
}
void ContextStats::evalDelta(const ContextStats& begin, const ContextStats& end) { void ContextStats::evalDelta(const ContextStats& begin, const ContextStats& end) {
_ISNumFormatChanges = end._ISNumFormatChanges - begin._ISNumFormatChanges; _ISNumFormatChanges = subWrap<uint32_t>(end._ISNumFormatChanges, begin._ISNumFormatChanges);
_ISNumInputBufferChanges = end._ISNumInputBufferChanges - begin._ISNumInputBufferChanges; _ISNumInputBufferChanges = subWrap<uint32_t>(end._ISNumInputBufferChanges, begin._ISNumInputBufferChanges);
_ISNumIndexBufferChanges = end._ISNumIndexBufferChanges - begin._ISNumIndexBufferChanges; _ISNumIndexBufferChanges = subWrap<uint32_t>(end._ISNumIndexBufferChanges, begin._ISNumIndexBufferChanges);
_RSNumTextureBounded = end._RSNumTextureBounded - begin._RSNumTextureBounded; _RSNumTextureBounded = subWrap<uint32_t>(end._RSNumTextureBounded, begin._RSNumTextureBounded);
_RSAmountTextureMemoryBounded = end._RSAmountTextureMemoryBounded - begin._RSAmountTextureMemoryBounded; _RSAmountTextureMemoryBounded = subWrap<uint64_t>(end._RSAmountTextureMemoryBounded, begin._RSAmountTextureMemoryBounded);
_DSNumAPIDrawcalls = end._DSNumAPIDrawcalls - begin._DSNumAPIDrawcalls; _DSNumAPIDrawcalls = subWrap<uint32_t>(end._DSNumAPIDrawcalls, begin._DSNumAPIDrawcalls);
_DSNumDrawcalls = end._DSNumDrawcalls - begin._DSNumDrawcalls; _DSNumDrawcalls = subWrap<uint32_t>(end._DSNumDrawcalls, begin._DSNumDrawcalls);
_DSNumTriangles= end._DSNumTriangles - begin._DSNumTriangles; _DSNumTriangles= subWrap<uint32_t>(end._DSNumTriangles, begin._DSNumTriangles);
_PSNumSetPipelines = end._PSNumSetPipelines - begin._PSNumSetPipelines; _PSNumSetPipelines = subWrap<uint32_t>(end._PSNumSetPipelines, begin._PSNumSetPipelines);
} }

View file

@ -32,19 +32,19 @@ namespace gpu {
struct ContextStats { struct ContextStats {
public: public:
int _ISNumFormatChanges = 0; uint32_t _ISNumFormatChanges { 0 };
int _ISNumInputBufferChanges = 0; uint32_t _ISNumInputBufferChanges { 0 };
int _ISNumIndexBufferChanges = 0; uint32_t _ISNumIndexBufferChanges { 0 };
int _RSNumResourceBufferBounded = 0; uint32_t _RSNumResourceBufferBounded { 0 };
int _RSNumTextureBounded = 0; uint32_t _RSNumTextureBounded { 0 };
int _RSAmountTextureMemoryBounded = 0; uint64_t _RSAmountTextureMemoryBounded { 0 };
int _DSNumAPIDrawcalls = 0; uint32_t _DSNumAPIDrawcalls { 0 };
int _DSNumDrawcalls = 0; uint32_t _DSNumDrawcalls { 0 };
int _DSNumTriangles = 0; uint32_t _DSNumTriangles { 0 };
int _PSNumSetPipelines = 0; uint32_t _PSNumSetPipelines { 0 };
ContextStats() {} ContextStats() {}
ContextStats(const ContextStats& stats) = default; ContextStats(const ContextStats& stats) = default;

View file

@ -56,7 +56,7 @@ namespace render {
Q_PROPERTY(quint32 frameTextureCount MEMBER frameTextureCount NOTIFY dirty) Q_PROPERTY(quint32 frameTextureCount MEMBER frameTextureCount NOTIFY dirty)
Q_PROPERTY(quint32 frameTextureRate MEMBER frameTextureRate NOTIFY dirty) Q_PROPERTY(quint32 frameTextureRate MEMBER frameTextureRate NOTIFY dirty)
Q_PROPERTY(quint32 frameTextureMemoryUsage MEMBER frameTextureMemoryUsage NOTIFY dirty) Q_PROPERTY(quint64 frameTextureMemoryUsage MEMBER frameTextureMemoryUsage NOTIFY dirty)
Q_PROPERTY(quint32 frameSetPipelineCount MEMBER frameSetPipelineCount NOTIFY dirty) Q_PROPERTY(quint32 frameSetPipelineCount MEMBER frameSetPipelineCount NOTIFY dirty)
Q_PROPERTY(quint32 frameSetInputFormatCount MEMBER frameSetInputFormatCount NOTIFY dirty) Q_PROPERTY(quint32 frameSetInputFormatCount MEMBER frameSetInputFormatCount NOTIFY dirty)
@ -96,7 +96,7 @@ namespace render {
quint32 frameTextureCount{ 0 }; quint32 frameTextureCount{ 0 };
quint32 frameTextureRate{ 0 }; quint32 frameTextureRate{ 0 };
qint64 frameTextureMemoryUsage{ 0 }; quint64 frameTextureMemoryUsage{ 0 };
quint32 frameSetPipelineCount{ 0 }; quint32 frameSetPipelineCount{ 0 };
@ -124,4 +124,4 @@ namespace render {
}; };
} }
#endif #endif