mirror of https://github.com/PCSX2/pcsx2.git
gsdx-debug: add more push/pop debug group on the init
This commit is contained in:
parent
9ba949c2d9
commit
5cbd0cf42a
|
@ -214,6 +214,8 @@ bool GSDeviceOGL::Create(GSWnd* wnd)
|
||||||
// ****************************************************************
|
// ****************************************************************
|
||||||
// Various object
|
// Various object
|
||||||
// ****************************************************************
|
// ****************************************************************
|
||||||
|
GL_PUSH("GSDeviceOGL::Various");
|
||||||
|
|
||||||
m_shader = new GSShaderOGL(!!theApp.GetConfig("debug_glsl_shader", 0));
|
m_shader = new GSShaderOGL(!!theApp.GetConfig("debug_glsl_shader", 0));
|
||||||
|
|
||||||
glGenFramebuffers(1, &m_fbo);
|
glGenFramebuffers(1, &m_fbo);
|
||||||
|
@ -229,9 +231,13 @@ bool GSDeviceOGL::Create(GSWnd* wnd)
|
||||||
glReadBuffer(GL_COLOR_ATTACHMENT0);
|
glReadBuffer(GL_COLOR_ATTACHMENT0);
|
||||||
glBindFramebuffer(GL_READ_FRAMEBUFFER, 0);
|
glBindFramebuffer(GL_READ_FRAMEBUFFER, 0);
|
||||||
|
|
||||||
|
GL_POP();
|
||||||
|
|
||||||
// ****************************************************************
|
// ****************************************************************
|
||||||
// Vertex buffer state
|
// Vertex buffer state
|
||||||
// ****************************************************************
|
// ****************************************************************
|
||||||
|
GL_PUSH("GSDeviceOGL::Vertex Buffer");
|
||||||
|
|
||||||
ASSERT(sizeof(GSVertexPT1) == sizeof(GSVertex));
|
ASSERT(sizeof(GSVertexPT1) == sizeof(GSVertex));
|
||||||
GSInputLayoutOGL il_convert[] =
|
GSInputLayoutOGL il_convert[] =
|
||||||
{
|
{
|
||||||
|
@ -246,16 +252,23 @@ bool GSDeviceOGL::Create(GSWnd* wnd)
|
||||||
};
|
};
|
||||||
m_va = new GSVertexBufferStateOGL(sizeof(GSVertexPT1), il_convert, countof(il_convert));
|
m_va = new GSVertexBufferStateOGL(sizeof(GSVertexPT1), il_convert, countof(il_convert));
|
||||||
|
|
||||||
|
GL_POP();
|
||||||
// ****************************************************************
|
// ****************************************************************
|
||||||
// Pre Generate the different sampler object
|
// Pre Generate the different sampler object
|
||||||
// ****************************************************************
|
// ****************************************************************
|
||||||
|
GL_PUSH("GSDeviceOGL::Sampler");
|
||||||
|
|
||||||
for (uint32 key = 0; key < countof(m_ps_ss); key++) {
|
for (uint32 key = 0; key < countof(m_ps_ss); key++) {
|
||||||
m_ps_ss[key] = CreateSampler(PSSamplerSelector(key));
|
m_ps_ss[key] = CreateSampler(PSSamplerSelector(key));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GL_POP();
|
||||||
|
|
||||||
// ****************************************************************
|
// ****************************************************************
|
||||||
// convert
|
// convert
|
||||||
// ****************************************************************
|
// ****************************************************************
|
||||||
|
GL_PUSH("GSDeviceOGL::Convert");
|
||||||
|
|
||||||
m_convert.cb = new GSUniformBufferOGL(g_convert_index, sizeof(ConvertConstantBuffer));
|
m_convert.cb = new GSUniformBufferOGL(g_convert_index, sizeof(ConvertConstantBuffer));
|
||||||
// Upload once and forget about it
|
// Upload once and forget about it
|
||||||
ConvertConstantBuffer cb;
|
ConvertConstantBuffer cb;
|
||||||
|
@ -278,24 +291,37 @@ bool GSDeviceOGL::Create(GSWnd* wnd)
|
||||||
m_convert.dss_write->EnableDepth();
|
m_convert.dss_write->EnableDepth();
|
||||||
m_convert.dss_write->SetDepth(GL_ALWAYS, true);
|
m_convert.dss_write->SetDepth(GL_ALWAYS, true);
|
||||||
|
|
||||||
|
GL_POP();
|
||||||
|
|
||||||
// ****************************************************************
|
// ****************************************************************
|
||||||
// merge
|
// merge
|
||||||
// ****************************************************************
|
// ****************************************************************
|
||||||
|
GL_PUSH("GSDeviceOGL::Merge");
|
||||||
|
|
||||||
m_merge_obj.cb = new GSUniformBufferOGL(g_merge_cb_index, sizeof(MergeConstantBuffer));
|
m_merge_obj.cb = new GSUniformBufferOGL(g_merge_cb_index, sizeof(MergeConstantBuffer));
|
||||||
|
|
||||||
for(size_t i = 0; i < countof(m_merge_obj.ps); i++)
|
for(size_t i = 0; i < countof(m_merge_obj.ps); i++)
|
||||||
m_merge_obj.ps[i] = m_shader->Compile("merge.glsl", format("ps_main%d", i), GL_FRAGMENT_SHADER, merge_glsl);
|
m_merge_obj.ps[i] = m_shader->Compile("merge.glsl", format("ps_main%d", i), GL_FRAGMENT_SHADER, merge_glsl);
|
||||||
|
|
||||||
|
GL_POP();
|
||||||
|
|
||||||
// ****************************************************************
|
// ****************************************************************
|
||||||
// interlace
|
// interlace
|
||||||
// ****************************************************************
|
// ****************************************************************
|
||||||
|
GL_PUSH("GSDeviceOGL::Interlace");
|
||||||
|
|
||||||
m_interlace.cb = new GSUniformBufferOGL(g_interlace_cb_index, sizeof(InterlaceConstantBuffer));
|
m_interlace.cb = new GSUniformBufferOGL(g_interlace_cb_index, sizeof(InterlaceConstantBuffer));
|
||||||
|
|
||||||
for(size_t i = 0; i < countof(m_interlace.ps); i++)
|
for(size_t i = 0; i < countof(m_interlace.ps); i++)
|
||||||
m_interlace.ps[i] = m_shader->Compile("interlace.glsl", format("ps_main%d", i), GL_FRAGMENT_SHADER, interlace_glsl);
|
m_interlace.ps[i] = m_shader->Compile("interlace.glsl", format("ps_main%d", i), GL_FRAGMENT_SHADER, interlace_glsl);
|
||||||
|
|
||||||
|
GL_POP();
|
||||||
|
|
||||||
// ****************************************************************
|
// ****************************************************************
|
||||||
// Shade boost
|
// Shade boost
|
||||||
// ****************************************************************
|
// ****************************************************************
|
||||||
|
GL_PUSH("GSDeviceOGL::Shadeboost");
|
||||||
|
|
||||||
m_shadeboost.cb = new GSUniformBufferOGL(g_shadeboost_cb_index, sizeof(ShadeBoostConstantBuffer));
|
m_shadeboost.cb = new GSUniformBufferOGL(g_shadeboost_cb_index, sizeof(ShadeBoostConstantBuffer));
|
||||||
|
|
||||||
int ShadeBoost_Contrast = theApp.GetConfig("ShadeBoost_Contrast", 50);
|
int ShadeBoost_Contrast = theApp.GetConfig("ShadeBoost_Contrast", 50);
|
||||||
|
@ -307,9 +333,13 @@ bool GSDeviceOGL::Create(GSWnd* wnd)
|
||||||
|
|
||||||
m_shadeboost.ps = m_shader->Compile("shadeboost.glsl", "ps_main", GL_FRAGMENT_SHADER, shadeboost_glsl, shade_macro);
|
m_shadeboost.ps = m_shader->Compile("shadeboost.glsl", "ps_main", GL_FRAGMENT_SHADER, shadeboost_glsl, shade_macro);
|
||||||
|
|
||||||
|
GL_POP();
|
||||||
|
|
||||||
// ****************************************************************
|
// ****************************************************************
|
||||||
// rasterization configuration
|
// rasterization configuration
|
||||||
// ****************************************************************
|
// ****************************************************************
|
||||||
|
GL_PUSH("GSDeviceOGL::Rasterization");
|
||||||
|
|
||||||
#ifdef ONLY_LINES
|
#ifdef ONLY_LINES
|
||||||
glLineWidth(5.0);
|
glLineWidth(5.0);
|
||||||
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
|
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
|
||||||
|
@ -321,14 +351,18 @@ bool GSDeviceOGL::Create(GSWnd* wnd)
|
||||||
glDisable(GL_MULTISAMPLE);
|
glDisable(GL_MULTISAMPLE);
|
||||||
glDisable(GL_DITHER); // Honestly I don't know!
|
glDisable(GL_DITHER); // Honestly I don't know!
|
||||||
|
|
||||||
|
GL_POP();
|
||||||
|
|
||||||
// ****************************************************************
|
// ****************************************************************
|
||||||
// DATE
|
// DATE
|
||||||
// ****************************************************************
|
// ****************************************************************
|
||||||
|
GL_PUSH("GSDeviceOGL::Date");
|
||||||
|
|
||||||
m_date.dss = new GSDepthStencilOGL();
|
m_date.dss = new GSDepthStencilOGL();
|
||||||
m_date.dss->EnableStencil();
|
m_date.dss->EnableStencil();
|
||||||
m_date.dss->SetStencil(GL_ALWAYS, GL_REPLACE);
|
m_date.dss->SetStencil(GL_ALWAYS, GL_REPLACE);
|
||||||
|
|
||||||
|
GL_POP();
|
||||||
// ****************************************************************
|
// ****************************************************************
|
||||||
// Use DX coordinate convention
|
// Use DX coordinate convention
|
||||||
// ****************************************************************
|
// ****************************************************************
|
||||||
|
@ -347,15 +381,24 @@ bool GSDeviceOGL::Create(GSWnd* wnd)
|
||||||
// ****************************************************************
|
// ****************************************************************
|
||||||
// HW renderer shader
|
// HW renderer shader
|
||||||
// ****************************************************************
|
// ****************************************************************
|
||||||
|
GL_PUSH("GSDeviceOGL::CreateTextureFX");
|
||||||
|
|
||||||
CreateTextureFX();
|
CreateTextureFX();
|
||||||
|
|
||||||
|
GL_POP();
|
||||||
|
|
||||||
// ****************************************************************
|
// ****************************************************************
|
||||||
// Pbo Pool allocation
|
// Pbo Pool allocation
|
||||||
// ****************************************************************
|
// ****************************************************************
|
||||||
|
GL_PUSH("GSDeviceOGL::PBO");
|
||||||
|
|
||||||
PboPool::Init();
|
PboPool::Init();
|
||||||
|
|
||||||
GL_POP();
|
GL_POP();
|
||||||
|
|
||||||
|
// Done !
|
||||||
|
GL_POP();
|
||||||
|
|
||||||
// ****************************************************************
|
// ****************************************************************
|
||||||
// Finish window setup and backbuffer
|
// Finish window setup and backbuffer
|
||||||
// ****************************************************************
|
// ****************************************************************
|
||||||
|
|
|
@ -29,8 +29,6 @@ static const uint32 g_gs_cb_index = 22;
|
||||||
|
|
||||||
void GSDeviceOGL::CreateTextureFX()
|
void GSDeviceOGL::CreateTextureFX()
|
||||||
{
|
{
|
||||||
GL_PUSH("CreateTextureFX");
|
|
||||||
|
|
||||||
m_vs_cb = new GSUniformBufferOGL(g_vs_cb_index, sizeof(VSConstantBuffer));
|
m_vs_cb = new GSUniformBufferOGL(g_vs_cb_index, sizeof(VSConstantBuffer));
|
||||||
m_ps_cb = new GSUniformBufferOGL(g_ps_cb_index, sizeof(PSConstantBuffer));
|
m_ps_cb = new GSUniformBufferOGL(g_ps_cb_index, sizeof(PSConstantBuffer));
|
||||||
|
|
||||||
|
@ -40,6 +38,8 @@ void GSDeviceOGL::CreateTextureFX()
|
||||||
|
|
||||||
// Pre compile all Geometry & Vertex Shader
|
// Pre compile all Geometry & Vertex Shader
|
||||||
// It might cost a seconds at startup but it would reduce benchmark pollution
|
// It might cost a seconds at startup but it would reduce benchmark pollution
|
||||||
|
GL_PUSH("Compile GS");
|
||||||
|
|
||||||
for (uint32 key = 0; key < countof(m_gs); key++) {
|
for (uint32 key = 0; key < countof(m_gs); key++) {
|
||||||
GSSelector sel(key);
|
GSSelector sel(key);
|
||||||
if (sel.point == sel.sprite)
|
if (sel.point == sel.sprite)
|
||||||
|
@ -48,6 +48,10 @@ void GSDeviceOGL::CreateTextureFX()
|
||||||
m_gs[key] = CompileGS(GSSelector(key));
|
m_gs[key] = CompileGS(GSSelector(key));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GL_POP();
|
||||||
|
|
||||||
|
GL_PUSH("Compile VS");
|
||||||
|
|
||||||
for (uint32 key = 0; key < countof(m_vs); key++) {
|
for (uint32 key = 0; key < countof(m_vs); key++) {
|
||||||
// wildhack is only useful if both TME and FST are enabled.
|
// wildhack is only useful if both TME and FST are enabled.
|
||||||
VSSelector sel(key);
|
VSSelector sel(key);
|
||||||
|
@ -57,6 +61,8 @@ void GSDeviceOGL::CreateTextureFX()
|
||||||
m_vs[key] = CompileVS(sel, !GLLoader::found_GL_ARB_clip_control);
|
m_vs[key] = CompileVS(sel, !GLLoader::found_GL_ARB_clip_control);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GL_POP();
|
||||||
|
|
||||||
// Enable all bits for stencil operations. Technically 1 bit is
|
// Enable all bits for stencil operations. Technically 1 bit is
|
||||||
// enough but buffer is polluted with noise. Clear will be limited
|
// enough but buffer is polluted with noise. Clear will be limited
|
||||||
// to the mask.
|
// to the mask.
|
||||||
|
@ -67,8 +73,6 @@ void GSDeviceOGL::CreateTextureFX()
|
||||||
|
|
||||||
// Help to debug FS in apitrace
|
// Help to debug FS in apitrace
|
||||||
m_apitrace = CompilePS(PSSelector());
|
m_apitrace = CompilePS(PSSelector());
|
||||||
|
|
||||||
GL_POP();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
GSDepthStencilOGL* GSDeviceOGL::CreateDepthStencil(OMDepthStencilSelector dssel)
|
GSDepthStencilOGL* GSDeviceOGL::CreateDepthStencil(OMDepthStencilSelector dssel)
|
||||||
|
|
Loading…
Reference in New Issue