mirror of https://github.com/xemu-project/xemu.git
nv2a: Add draw counter to renderdoc context
Also emit a fake pgraph entry capturing the subframe draw number in BEGIN_END.
This commit is contained in:
parent
3a659fc724
commit
a27e96ac9a
|
@ -31,6 +31,8 @@
|
|||
#include "gloffscreen.h"
|
||||
#include "config-host.h"
|
||||
|
||||
extern uint32_t g_nv2a_current_frame_draw_count; // abaire
|
||||
|
||||
void gl_debug_initialize(void);
|
||||
void gl_debug_message(bool cc, const char *fmt, ...);
|
||||
void gl_debug_group_begin(const char *fmt, ...);
|
||||
|
|
|
@ -128,7 +128,7 @@ void pgraph_gl_clear_surface(NV2AState *d, uint32_t parameter)
|
|||
if (r->zeta_binding) {
|
||||
r->zeta_binding->cleared = full_clear && write_zeta;
|
||||
}
|
||||
|
||||
|
||||
pg->clearing = false;
|
||||
}
|
||||
|
||||
|
@ -137,7 +137,16 @@ void pgraph_gl_draw_begin(NV2AState *d)
|
|||
PGRAPHState *pg = &d->pgraph;
|
||||
PGRAPHGLState *r = pg->gl_renderer_state;
|
||||
|
||||
NV2A_GL_DGROUP_BEGIN("NV097_SET_BEGIN_END: 0x%x", pg->primitive_mode);
|
||||
// abaire
|
||||
#if DEBUG_NV2A_GL
|
||||
NV2A_GL_DGROUP_BEGIN("NV097_SET_BEGIN_END: 0x%x %d", pg->primitive_mode, g_nv2a_current_frame_draw_count);
|
||||
{
|
||||
char buffer[256] = {0};
|
||||
sprintf(buffer, "frame_draw %d ", g_nv2a_current_frame_draw_count);
|
||||
trace_nv2a_pgraph_method(-1, 0, 0, buffer, 0, 0);
|
||||
}
|
||||
#endif
|
||||
// /abaire
|
||||
|
||||
uint32_t control_0 = pgraph_reg_r(pg, NV_PGRAPH_CONTROL_0);
|
||||
bool mask_alpha = control_0 & NV_PGRAPH_CONTROL_0_ALPHA_WRITE_ENABLE;
|
||||
|
@ -367,6 +376,10 @@ void pgraph_gl_draw_end(NV2AState *d)
|
|||
PGRAPHState *pg = &d->pgraph;
|
||||
PGRAPHGLState *r = pg->gl_renderer_state;
|
||||
|
||||
#if DEBUG_NV2A_GL
|
||||
++g_nv2a_current_frame_draw_count; // abaire
|
||||
#endif
|
||||
|
||||
uint32_t control_0 = pgraph_reg_r(pg, NV_PGRAPH_CONTROL_0);
|
||||
bool mask_alpha = control_0 & NV_PGRAPH_CONTROL_0_ALPHA_WRITE_ENABLE;
|
||||
bool mask_red = control_0 & NV_PGRAPH_CONTROL_0_RED_WRITE_ENABLE;
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
#include "hw/xbox/nv2a/nv2a_int.h"
|
||||
|
||||
NV2AStats g_nv2a_stats;
|
||||
uint32_t g_nv2a_current_frame_draw_count = 0; // abaire
|
||||
|
||||
void nv2a_profile_increment(void)
|
||||
{
|
||||
|
@ -51,6 +52,8 @@ void nv2a_profile_flip_stall(void)
|
|||
(g_nv2a_stats.frame_ptr + 1) % NV2A_PROF_NUM_FRAMES;
|
||||
g_nv2a_stats.frame_count++;
|
||||
memset(&g_nv2a_stats.frame_working, 0, sizeof(g_nv2a_stats.frame_working));
|
||||
|
||||
g_nv2a_current_frame_draw_count = 0; // abaire
|
||||
}
|
||||
|
||||
const char *nv2a_profile_get_counter_name(unsigned int cnt)
|
||||
|
|
Loading…
Reference in New Issue