mirror of https://github.com/PCSX2/pcsx2.git
gsdx-debug: improve tracing interface
Basically move the format and c_str() in the macro
This commit is contained in:
parent
b8aa5f8f80
commit
b1ea081fc3
|
@ -147,13 +147,13 @@ GSDeviceOGL::~GSDeviceOGL()
|
||||||
GL_POP();
|
GL_POP();
|
||||||
}
|
}
|
||||||
|
|
||||||
GSTexture* GSDeviceOGL::CreateSurface(int type, int w, int h, bool msaa, int format)
|
GSTexture* GSDeviceOGL::CreateSurface(int type, int w, int h, bool msaa, int fmt)
|
||||||
{
|
{
|
||||||
GL_PUSH("Create surface");
|
GL_PUSH("Create surface");
|
||||||
|
|
||||||
// A wrapper to call GSTextureOGL, with the different kind of parameter
|
// A wrapper to call GSTextureOGL, with the different kind of parameter
|
||||||
GSTextureOGL* t = NULL;
|
GSTextureOGL* t = NULL;
|
||||||
t = new GSTextureOGL(type, w, h, format, m_fbo_read);
|
t = new GSTextureOGL(type, w, h, fmt, m_fbo_read);
|
||||||
|
|
||||||
// NOTE: I'm not sure RenderTarget always need to be cleared. It could be costly for big upscale.
|
// NOTE: I'm not sure RenderTarget always need to be cleared. It could be costly for big upscale.
|
||||||
switch(type)
|
switch(type)
|
||||||
|
@ -430,7 +430,7 @@ void GSDeviceOGL::ClearRenderTarget(GSTexture* t, const GSVector4& c)
|
||||||
if (T->HasBeenCleaned() && !T->IsBackbuffer())
|
if (T->HasBeenCleaned() && !T->IsBackbuffer())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
GL_PUSH(format("Clear RT %d", T->GetID()).c_str());
|
GL_PUSH("Clear RT %d", T->GetID());
|
||||||
|
|
||||||
// TODO: check size of scissor before toggling it
|
// TODO: check size of scissor before toggling it
|
||||||
glDisable(GL_SCISSOR_TEST);
|
glDisable(GL_SCISSOR_TEST);
|
||||||
|
@ -471,7 +471,7 @@ void GSDeviceOGL::ClearRenderTarget_i(GSTexture* t, int32 c)
|
||||||
{
|
{
|
||||||
GSTextureOGL* T = static_cast<GSTextureOGL*>(t);
|
GSTextureOGL* T = static_cast<GSTextureOGL*>(t);
|
||||||
|
|
||||||
GL_PUSH(format("Clear RTi %d", T->GetID()).c_str());
|
GL_PUSH("Clear RTi %d", T->GetID());
|
||||||
|
|
||||||
uint32 old_color_mask = GLState::wrgba;
|
uint32 old_color_mask = GLState::wrgba;
|
||||||
OMSetColorMaskState();
|
OMSetColorMaskState();
|
||||||
|
@ -494,7 +494,7 @@ void GSDeviceOGL::ClearDepth(GSTexture* t, float c)
|
||||||
{
|
{
|
||||||
GSTextureOGL* T = static_cast<GSTextureOGL*>(t);
|
GSTextureOGL* T = static_cast<GSTextureOGL*>(t);
|
||||||
|
|
||||||
GL_PUSH(format("Clear Depth %d", T->GetID()).c_str());
|
GL_PUSH("Clear Depth %d", T->GetID());
|
||||||
|
|
||||||
OMSetFBO(m_fbo);
|
OMSetFBO(m_fbo);
|
||||||
OMAttachDs(T);
|
OMAttachDs(T);
|
||||||
|
@ -517,7 +517,7 @@ void GSDeviceOGL::ClearStencil(GSTexture* t, uint8 c)
|
||||||
{
|
{
|
||||||
GSTextureOGL* T = static_cast<GSTextureOGL*>(t);
|
GSTextureOGL* T = static_cast<GSTextureOGL*>(t);
|
||||||
|
|
||||||
GL_PUSH(format("Clear Stencil %d", T->GetID()).c_str());
|
GL_PUSH("Clear Stencil %d", T->GetID());
|
||||||
|
|
||||||
// Keep SCISSOR_TEST enabled on purpose to reduce the size
|
// Keep SCISSOR_TEST enabled on purpose to reduce the size
|
||||||
// of clean in DATE (impact big upscaling)
|
// of clean in DATE (impact big upscaling)
|
||||||
|
@ -694,7 +694,7 @@ void GSDeviceOGL::CopyRect(GSTexture* sTex, GSTexture* dTex, const GSVector4i& r
|
||||||
const GLuint& sid = sTex->GetID();
|
const GLuint& sid = sTex->GetID();
|
||||||
const GLuint& did = dTex->GetID();
|
const GLuint& did = dTex->GetID();
|
||||||
|
|
||||||
GL_PUSH(format("CopyRect from %d to %d", sid, did).c_str());
|
GL_PUSH("CopyRect from %d to %d", sid, did);
|
||||||
|
|
||||||
if (GLLoader::found_GL_ARB_copy_image) {
|
if (GLLoader::found_GL_ARB_copy_image) {
|
||||||
gl_CopyImageSubData( sid, GL_TEXTURE_2D,
|
gl_CopyImageSubData( sid, GL_TEXTURE_2D,
|
||||||
|
@ -734,7 +734,7 @@ void GSDeviceOGL::StretchRect(GSTexture* sTex, const GSVector4& sRect, GSTexture
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
GL_PUSH(format("StretchRect from %d to %d", sTex->GetID(), dTex->GetID()).c_str());
|
GL_PUSH("StretchRect from %d to %d", sTex->GetID(), dTex->GetID());
|
||||||
|
|
||||||
// ************************************
|
// ************************************
|
||||||
// Init
|
// Init
|
||||||
|
|
|
@ -92,7 +92,7 @@ public:
|
||||||
|
|
||||||
#ifdef ENABLE_OGL_DEBUG
|
#ifdef ENABLE_OGL_DEBUG
|
||||||
if (m_bogus > 2) {
|
if (m_bogus > 2) {
|
||||||
GL_INS(format("!!! Bogus blending effect used (%d) !!!", m_bogus).c_str());
|
GL_INS("!!! Bogus blending effect used (%d) !!!", m_bogus);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
if (m_enable) {
|
if (m_enable) {
|
||||||
|
|
|
@ -313,7 +313,7 @@ void GSRendererHW::Draw()
|
||||||
s_n += 3; // Keep it sync with SW renderer
|
s_n += 3; // Keep it sync with SW renderer
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
GL_PUSH(format("HW Draw %d", s_n).c_str());
|
GL_PUSH("HW Draw %d", s_n);
|
||||||
|
|
||||||
GSDrawingEnvironment& env = m_env;
|
GSDrawingEnvironment& env = m_env;
|
||||||
GSDrawingContext* context = m_context;
|
GSDrawingContext* context = m_context;
|
||||||
|
@ -447,7 +447,7 @@ void GSRendererHW::Draw()
|
||||||
context->FRAME.FBMSK = fm;
|
context->FRAME.FBMSK = fm;
|
||||||
context->ZBUF.ZMSK = zm != 0;
|
context->ZBUF.ZMSK = zm != 0;
|
||||||
|
|
||||||
// A couple of hack to avoid upscaling issue. So far it seems to impacts only sprite without linear filtering
|
// A couple of hack to avoid upscaling issue. So far it seems to impacts mostly sprite
|
||||||
if ((m_upscale_multiplier > 1) && (m_vt.m_primclass == GS_SPRITE_CLASS)) {
|
if ((m_upscale_multiplier > 1) && (m_vt.m_primclass == GS_SPRITE_CLASS)) {
|
||||||
size_t count = m_vertex.next;
|
size_t count = m_vertex.next;
|
||||||
GSVertex* v = &m_vertex.buff[0];
|
GSVertex* v = &m_vertex.buff[0];
|
||||||
|
|
|
@ -211,10 +211,9 @@ void GSRendererOGL::SendDraw(bool require_barrier)
|
||||||
|
|
||||||
void GSRendererOGL::DrawPrims(GSTexture* rt, GSTexture* ds, GSTextureCache::Source* tex)
|
void GSRendererOGL::DrawPrims(GSTexture* rt, GSTexture* ds, GSTextureCache::Source* tex)
|
||||||
{
|
{
|
||||||
GL_PUSH(format("GL Draw from %d in %d (Depth %d)",
|
GL_PUSH("GL Draw from %d in %d (Depth %d)",
|
||||||
tex && tex->m_texture ? tex->m_texture->GetID() : 0,
|
tex && tex->m_texture ? tex->m_texture->GetID() : 0,
|
||||||
rt->GetID(),
|
rt->GetID(), ds->GetID());
|
||||||
ds->GetID()).c_str());
|
|
||||||
|
|
||||||
GSDrawingEnvironment& env = m_env;
|
GSDrawingEnvironment& env = m_env;
|
||||||
GSDrawingContext* context = m_context;
|
GSDrawingContext* context = m_context;
|
||||||
|
|
|
@ -130,12 +130,11 @@ GSTextureCache::Source* GSTextureCache::LookupSource(const GIFRegTEX0& TEX0, con
|
||||||
{
|
{
|
||||||
#ifdef ENABLE_OGL_DEBUG
|
#ifdef ENABLE_OGL_DEBUG
|
||||||
if (dst) {
|
if (dst) {
|
||||||
GL_CACHE(format("TC: dst hit: %d (0x%x)",
|
GL_CACHE("TC: dst hit: %d (0x%x)",
|
||||||
dst->m_texture ? dst->m_texture->GetID() : 0,
|
dst->m_texture ? dst->m_texture->GetID() : 0,
|
||||||
TEX0.TBP0
|
TEX0.TBP0);
|
||||||
).c_str());
|
|
||||||
} else {
|
} else {
|
||||||
GL_CACHE(format("TC: src miss (0x%x)", TEX0.TBP0).c_str());
|
GL_CACHE("TC: src miss (0x%x)", TEX0.TBP0);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
src = CreateSource(TEX0, TEXA, dst);
|
src = CreateSource(TEX0, TEXA, dst);
|
||||||
|
@ -146,10 +145,9 @@ GSTextureCache::Source* GSTextureCache::LookupSource(const GIFRegTEX0& TEX0, con
|
||||||
}
|
}
|
||||||
#ifdef ENABLE_OGL_DEBUG
|
#ifdef ENABLE_OGL_DEBUG
|
||||||
} else {
|
} else {
|
||||||
GL_CACHE(format("TC: src hit: %d (0x%x)",
|
GL_CACHE("TC: src hit: %d (0x%x)",
|
||||||
src->m_texture ? src->m_texture->GetID() : 0,
|
src->m_texture ? src->m_texture->GetID() : 0,
|
||||||
TEX0.TBP0
|
TEX0.TBP0);
|
||||||
).c_str());
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -195,7 +193,7 @@ GSTextureCache::Target* GSTextureCache::LookupTarget(const GIFRegTEX0& TEX0, int
|
||||||
|
|
||||||
if(dst == NULL)
|
if(dst == NULL)
|
||||||
{
|
{
|
||||||
GL_CACHE(format("TC: Lookup Target(T%d) %dx%d, miss (0x%x)", type, w, h, bp).c_str());
|
GL_CACHE("TC: Lookup Target(T%d) %dx%d, miss (0x%x)", type, w, h, bp);
|
||||||
|
|
||||||
dst = CreateTarget(TEX0, w, h, type);
|
dst = CreateTarget(TEX0, w, h, type);
|
||||||
|
|
||||||
|
@ -206,7 +204,7 @@ GSTextureCache::Target* GSTextureCache::LookupTarget(const GIFRegTEX0& TEX0, int
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
GL_CACHE(format("TC: Lookup Target(T%d) %dx%d, hit: %d (0x%x)", type, w, h, dst->m_texture->GetID(), bp).c_str());
|
GL_CACHE("TC: Lookup Target(T%d) %dx%d, hit: %d (0x%x)", type, w, h, dst->m_texture->GetID(), bp);
|
||||||
|
|
||||||
dst->Update();
|
dst->Update();
|
||||||
}
|
}
|
||||||
|
@ -275,7 +273,7 @@ GSTextureCache::Target* GSTextureCache::LookupTarget(const GIFRegTEX0& TEX0, int
|
||||||
{
|
{
|
||||||
dst = t;
|
dst = t;
|
||||||
|
|
||||||
GL_CACHE(format("TC: Lookup Frame %dx%d, perfect hit: %d (0x%x)", w, h, dst->m_texture->GetID(), bp).c_str());
|
GL_CACHE("TC: Lookup Frame %dx%d, perfect hit: %d (0x%x)", w, h, dst->m_texture->GetID(), bp);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -285,7 +283,7 @@ GSTextureCache::Target* GSTextureCache::LookupTarget(const GIFRegTEX0& TEX0, int
|
||||||
|
|
||||||
if(t->m_TEX0.TBP0 <= bp && bp < t->m_TEX0.TBP0 + 0xe00UL && (!dst || t->m_TEX0.TBP0 >= dst->m_TEX0.TBP0))
|
if(t->m_TEX0.TBP0 <= bp && bp < t->m_TEX0.TBP0 + 0xe00UL && (!dst || t->m_TEX0.TBP0 >= dst->m_TEX0.TBP0))
|
||||||
{
|
{
|
||||||
GL_CACHE(format("TC: Lookup Frame %dx%d, close hit: %d (0x%x, took 0x%x)", w, h, dst->m_texture->GetID(), bp, dst->m_TEX0.TBP0).c_str());
|
GL_CACHE("TC: Lookup Frame %dx%d, close hit: %d (0x%x, took 0x%x)", w, h, dst->m_texture->GetID(), bp, dst->m_TEX0.TBP0);
|
||||||
dst = t;
|
dst = t;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -293,7 +291,7 @@ GSTextureCache::Target* GSTextureCache::LookupTarget(const GIFRegTEX0& TEX0, int
|
||||||
|
|
||||||
if(dst == NULL)
|
if(dst == NULL)
|
||||||
{
|
{
|
||||||
GL_CACHE(format("TC: Lookup Frame %dx%d, miss (0x%x)", w, h, bp).c_str());
|
GL_CACHE("TC: Lookup Frame %dx%d, miss (0x%x)", w, h, bp);
|
||||||
|
|
||||||
dst = CreateTarget(TEX0, w, h, RenderTarget);
|
dst = CreateTarget(TEX0, w, h, RenderTarget);
|
||||||
|
|
||||||
|
@ -425,9 +423,9 @@ void GSTextureCache::InvalidateVideoMem(GSOffset* off, const GSVector4i& rect, b
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_dst[type].erase(j);
|
m_dst[type].erase(j);
|
||||||
GL_CACHE(format("TC: Remove Target(%d) %d (0x%x)", type,
|
GL_CACHE("TC: Remove Target(%d) %d (0x%x)", type,
|
||||||
t->m_texture ? t->m_texture->GetID() : 0,
|
t->m_texture ? t->m_texture->GetID() : 0,
|
||||||
t->m_TEX0.TBP0).c_str());
|
t->m_TEX0.TBP0);
|
||||||
delete t;
|
delete t;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -605,9 +603,9 @@ void GSTextureCache::IncAge()
|
||||||
if(++t->m_age > maxage)
|
if(++t->m_age > maxage)
|
||||||
{
|
{
|
||||||
m_dst[type].erase(j);
|
m_dst[type].erase(j);
|
||||||
GL_CACHE(format("TC: Remove Target(T%d): %d (0x%x) due to age", type,
|
GL_CACHE("TC: Remove Target(T%d): %d (0x%x) due to age", type,
|
||||||
t->m_texture ? t->m_texture->GetID() : 0,
|
t->m_texture ? t->m_texture->GetID() : 0,
|
||||||
t->m_TEX0.TBP0).c_str());
|
t->m_TEX0.TBP0);
|
||||||
|
|
||||||
delete t;
|
delete t;
|
||||||
}
|
}
|
||||||
|
@ -645,9 +643,9 @@ GSTextureCache::Source* GSTextureCache::CreateSource(const GIFRegTEX0& TEX0, con
|
||||||
|
|
||||||
if(dst->m_type != RenderTarget)
|
if(dst->m_type != RenderTarget)
|
||||||
{
|
{
|
||||||
GL_CACHE(format("TC: Remove dst because not a RT %d (0x%x)",
|
GL_CACHE("TC: Remove dst because not a RT %d (0x%x)",
|
||||||
dst->m_texture ? dst->m_texture->GetID() : 0,
|
dst->m_texture ? dst->m_texture->GetID() : 0,
|
||||||
dst->m_TEX0.TBP0).c_str());
|
dst->m_TEX0.TBP0);
|
||||||
|
|
||||||
// TODO
|
// TODO
|
||||||
delete src;
|
delete src;
|
||||||
|
@ -1285,9 +1283,9 @@ void GSTextureCache::SourceMap::RemoveAt(Source* s)
|
||||||
{
|
{
|
||||||
m_surfaces.erase(s);
|
m_surfaces.erase(s);
|
||||||
|
|
||||||
GL_CACHE(format("TC: Remove Src Texture: %d (0x%x)",
|
GL_CACHE("TC: Remove Src Texture: %d (0x%x)",
|
||||||
s->m_texture ? s->m_texture->GetID() : 0,
|
s->m_texture ? s->m_texture->GetID() : 0,
|
||||||
s->m_TEX0.TBP0).c_str());
|
s->m_TEX0.TBP0);
|
||||||
|
|
||||||
// Source (except render target) is duplicated for each page they use.
|
// Source (except render target) is duplicated for each page they use.
|
||||||
for(size_t start = s->m_TEX0.TBP0 >> 5, end = s->m_target ? start : countof(m_map) - 1; start <= end; start++)
|
for(size_t start = s->m_TEX0.TBP0 >> 5, end = s->m_target ? start : countof(m_map) - 1; start <= end; start++)
|
||||||
|
|
|
@ -54,9 +54,8 @@ void GSTextureCacheOGL::Read(Target* t, const GSVector4i& r)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
GL_CACHE(format("TC: Read Back Target: %d (0x%x formatted as 0x%x)",
|
GL_CACHE("TC: Read Back Target: %d (0x%x formatted as 0x%x)",
|
||||||
t->m_texture->GetID(), TEX0.TBP0, TEX0.PSM
|
t->m_texture->GetID(), TEX0.TBP0, TEX0.PSM);
|
||||||
).c_str());
|
|
||||||
|
|
||||||
GL_PUSH("Texture Cache Read");
|
GL_PUSH("Texture Cache Read");
|
||||||
|
|
||||||
|
|
|
@ -293,7 +293,7 @@ void GSTextureOGL::Invalidate()
|
||||||
bool GSTextureOGL::Update(const GSVector4i& r, const void* data, int pitch)
|
bool GSTextureOGL::Update(const GSVector4i& r, const void* data, int pitch)
|
||||||
{
|
{
|
||||||
ASSERT(m_type != GSTexture::DepthStencil && m_type != GSTexture::Offscreen);
|
ASSERT(m_type != GSTexture::DepthStencil && m_type != GSTexture::Offscreen);
|
||||||
GL_PUSH(format("Upload Texture %d", m_texture_id).c_str());
|
GL_PUSH("Upload Texture %d", m_texture_id);
|
||||||
|
|
||||||
m_dirty = true;
|
m_dirty = true;
|
||||||
m_clean = false;
|
m_clean = false;
|
||||||
|
|
|
@ -495,20 +495,20 @@ extern void vmfree(void* ptr, size_t size);
|
||||||
|
|
||||||
// Except apple any sane driver support this extension
|
// Except apple any sane driver support this extension
|
||||||
#if defined(__linux__) && defined(_DEBUG)
|
#if defined(__linux__) && defined(_DEBUG)
|
||||||
#define GL_CACHE(s) gl_DebugMessageInsert(GL_DEBUG_SOURCE_APPLICATION, GL_DEBUG_TYPE_OTHER, 0xFEAD, GL_DEBUG_SEVERITY_NOTIFICATION, -1, s);
|
#define GL_CACHE(...) gl_DebugMessageInsert(GL_DEBUG_SOURCE_APPLICATION, GL_DEBUG_TYPE_OTHER, 0xFEAD, GL_DEBUG_SEVERITY_NOTIFICATION, -1, format(__VA_ARGS__).c_str());
|
||||||
#else
|
#else
|
||||||
#define GL_CACHE(s) (0);
|
#define GL_CACHE(...) (0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(__linux__) && defined(ENABLE_OGL_DEBUG)
|
#if defined(__linux__) && defined(ENABLE_OGL_DEBUG)
|
||||||
#define GL_PUSH(s) gl_PushDebugGroup(GL_DEBUG_SOURCE_APPLICATION, 0xBAD, -1, s);
|
#define GL_PUSH(...) gl_PushDebugGroup(GL_DEBUG_SOURCE_APPLICATION, 0xBAD, -1, format(__VA_ARGS__).c_str());
|
||||||
#define GL_POP(s) gl_PopDebugGroup();
|
#define GL_POP() gl_PopDebugGroup();
|
||||||
#define GL_INS(s) gl_DebugMessageInsert(GL_DEBUG_SOURCE_APPLICATION, GL_DEBUG_TYPE_ERROR, 0xDEAD, GL_DEBUG_SEVERITY_MEDIUM, -1, s);
|
#define GL_INS(...) gl_DebugMessageInsert(GL_DEBUG_SOURCE_APPLICATION, GL_DEBUG_TYPE_ERROR, 0xDEAD, GL_DEBUG_SEVERITY_MEDIUM, -1, format(__VA_ARGS__).c_str());
|
||||||
|
|
||||||
#else
|
#else
|
||||||
#define GL_PUSH(s) (0);
|
#define GL_PUSH(...) (0);
|
||||||
#define GL_POP() (0);
|
#define GL_POP() (0);
|
||||||
#define GL_INS(s) (0);
|
#define GL_INS(...) (0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Helper path to dump texture
|
// Helper path to dump texture
|
||||||
|
|
Loading…
Reference in New Issue