From a9fdcd959bb81044308761ceea398bf9ab67573a Mon Sep 17 00:00:00 2001 From: DH Date: Tue, 27 Aug 2013 18:18:01 +0300 Subject: [PATCH] OpenGL renderer: - Disabled dump vertex data. - Fixed fragment constants loader. - Fixed fbo creation. - Implemented texture filtering. --- .../TEST12345/USRDIR/handle_system_cmd.elf | Bin 0 -> 274528 bytes rpcs3/Emu/GS/GL/GLBuffers.cpp | 4 +- rpcs3/Emu/GS/GL/GLGSRender.cpp | 117 +++++++++++++++--- rpcs3/Emu/GS/GL/GLGSRender.h | 39 +++++- rpcs3/Emu/GS/GSRender.cpp | 1 + rpcs3/Emu/GS/RSXThread.h | 16 ++- 6 files changed, 153 insertions(+), 24 deletions(-) create mode 100644 bin/dev_hdd0/game/TEST12345/USRDIR/handle_system_cmd.elf diff --git a/bin/dev_hdd0/game/TEST12345/USRDIR/handle_system_cmd.elf b/bin/dev_hdd0/game/TEST12345/USRDIR/handle_system_cmd.elf new file mode 100644 index 0000000000000000000000000000000000000000..2937c9e4ba25fb0b39ef24e76362b47baf6f3e4f GIT binary patch literal 274528 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 - if(id < 32) - id = 32; + u32 id = c.id - m_cur_shader_prog->offset + 2 * 4 * 4; const wxString name = wxString::Format("fc%u", id); const int l = m_program.GetLocation(name); @@ -563,13 +561,15 @@ void GLGSRender::DoCmd(const u32 fcmd, const u32 cmd, mem32_t& args, const u32 c m_fbo.Bind(GL_READ_FRAMEBUFFER); m_fbo.Bind(GL_DRAW_FRAMEBUFFER, 0); m_fbo.Blit( - 0, 0, m_width, m_height, - 0, 0, m_width, m_height, + m_surface_clip_x, m_surface_clip_y, m_surface_clip_x + m_surface_clip_w, m_surface_clip_y + m_surface_clip_h, + m_surface_clip_x, m_surface_clip_y, m_surface_clip_x + m_surface_clip_w, m_surface_clip_y + m_surface_clip_h, GL_COLOR_BUFFER_BIT | GL_STENCIL_BUFFER_BIT | GL_DEPTH_BUFFER_BIT, GL_NEAREST); m_fbo.Bind(); + checkForGlError("m_fbo.Blit"); } m_frame->Flip(); + glClear(GL_COLOR_BUFFER_BIT | GL_STENCIL_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); } m_gcm_current_buffer = args[0]; @@ -708,7 +708,20 @@ void GLGSRender::DoCmd(const u32 fcmd, const u32 cmd, mem32_t& args, const u32 c break; case_16(NV4097_SET_TEXTURE_FILTER, 0x20): - //TODO + { + GLTexture& tex = m_frame->GetTexture(index); + u32 a0 = args[0]; + u16 bias = a0 & 0x1fff; + u8 conv = (a0 >> 13) & 0xf; + u8 min = (a0 >> 16) & 0x7; + u8 mag = (a0 >> 24) & 0x7; + u8 a_signed = (a0 >> 28) & 0x1; + u8 r_signed = (a0 >> 29) & 0x1; + u8 g_signed = (a0 >> 30) & 0x1; + u8 b_signed = (a0 >> 31) & 0x1; + + tex.SetFilter(bias, min, mag, conv, a_signed, r_signed, g_signed, b_signed); + } break; case_16(NV4097_SET_TEXTURE_ADDRESS, 0x20): @@ -801,7 +814,11 @@ void GLGSRender::DoCmd(const u32 fcmd, const u32 cmd, mem32_t& args, const u32 c } */ - if(0) + gcmBuffer* buffers = (gcmBuffer*)Memory.GetMemFromAddr(m_gcm_buffers_addr); + m_width = re(buffers[m_gcm_current_buffer].width); + m_height = re(buffers[m_gcm_current_buffer].height); + + if(1) { m_rbo.Create(2); checkForGlError("m_rbo.Create"); @@ -809,7 +826,7 @@ void GLGSRender::DoCmd(const u32 fcmd, const u32 cmd, mem32_t& args, const u32 c m_rbo.Storage(GL_RGBA, m_width, m_height); checkForGlError("m_rbo.Storage(GL_RGBA)"); m_rbo.Bind(1); - m_rbo.Storage(GL_DEPTH_STENCIL, m_width, m_height); + m_rbo.Storage(GL_DEPTH24_STENCIL8, m_width, m_height); checkForGlError("m_rbo.Storage(GL_DEPTH24_STENCIL8)"); m_fbo.Create(); checkForGlError("m_fbo.Create"); @@ -854,11 +871,24 @@ void GLGSRender::DoCmd(const u32 fcmd, const u32 cmd, mem32_t& args, const u32 c break; case NV4097_SET_ALPHA_FUNC: - glAlphaFunc(args[0], args[1]); + m_set_alpha_func = true; + m_alpha_func = args[0]; + + if(count >= 2) + { + m_set_alpha_ref = true; + m_alpha_ref = args[1]; + } + break; + + case NV4097_SET_ALPHA_REF: + m_set_alpha_ref = true; + m_alpha_ref = args[0]; break; case NV4097_SET_CULL_FACE: - glCullFace(args[0]); + m_set_cull_face = true; + m_cull_face = args[0]; break; case NV4097_SET_VIEWPORT_VERTICAL: @@ -922,6 +952,7 @@ void GLGSRender::DoCmd(const u32 fcmd, const u32 cmd, mem32_t& args, const u32 c if (a0 & 0x2) f |= GL_STENCIL_BUFFER_BIT; if (a0 & 0xF0) f |= GL_COLOR_BUFFER_BIT; glClear(f); + checkForGlError("glClear"); /* if(m_set_clear_surface) { @@ -1088,6 +1119,7 @@ void GLGSRender::DoCmd(const u32 fcmd, const u32 cmd, mem32_t& args, const u32 c m_clear_color_g / 255.0f, m_clear_color_b / 255.0f, m_clear_color_a / 255.0f); + checkForGlError("glClearColor"); } break; @@ -1190,7 +1222,7 @@ void GLGSRender::DoCmd(const u32 fcmd, const u32 cmd, mem32_t& args, const u32 c break; case NV4097_SET_CULL_FACE_ENABLE: - m_set_cull_face = args[0] ? true : false; + m_set_cull_face_enable = args[0] ? true : false; break; case NV4097_SET_DITHER_ENABLE: @@ -1546,9 +1578,46 @@ void GLGSRender::DoCmd(const u32 fcmd, const u32 cmd, mem32_t& args, const u32 c break; case NV4097_SET_ZSTENCIL_CLEAR_VALUE: + { + u32 clear_valuei = args[0]; + //double clear_valuef = (double)clear_valuei / 0xffffffff; + //glClearDepth(clear_valuef); + glClearStencil(clear_valuei); + glClear(GL_STENCIL_BUFFER_BIT); + } + break; + case NV4097_SET_ZCULL_CONTROL0: + { + m_set_depth_func = true; + m_depth_func = args[0] >> 4; + } + break; + case NV4097_SET_ZCULL_CONTROL1: + { + //TODO + } + break; + case NV4097_SET_SCULL_CONTROL: + { + u32 a0 = args[0]; + m_set_stencil_func = m_set_stencil_func_ref = m_set_stencil_func_mask = true; + + m_stencil_func = a0 & 0xffff; + m_stencil_func_ref = (a0 >> 16) & 0xff; + m_stencil_func_mask = (a0 >> 24) & 0xff; + } + break; + + case NV4097_SET_ZCULL_EN: + { + u32 a0 = args[0]; + + m_depth_test_enable = a0 & 0x1 ? true : false; + m_set_stencil_test = a0 & 0x2 ? true : false; + } break; case NV4097_GET_REPORT: @@ -1800,8 +1869,9 @@ bool GLGSRender::LoadProgram() else { m_program.Create(m_cur_vertex_prog->id, m_cur_shader_prog->id); + checkForGlError("m_program.Create"); m_prog_buffer.Add(m_program, *m_cur_shader_prog, *m_cur_vertex_prog); - + checkForGlError("m_prog_buffer.Add"); m_program.Use(); GLint r = GL_FALSE; @@ -1833,9 +1903,7 @@ void GLGSRender::ExecCMD() { if(m_set_surface_clip_horizontal && m_set_surface_clip_vertical) { - m_width = m_surface_clip_w; - m_height = m_surface_clip_h; - //ConLog.Write("width: %d, height: %d, x: %d, y: %d", m_width, m_height, m_surface_clip_x, m_surface_clip_y); + //ConLog.Write("surface clip width: %d, height: %d, x: %d, y: %d", m_width, m_height, m_surface_clip_x, m_surface_clip_y); } if(m_set_color_mask) @@ -1885,7 +1953,7 @@ void GLGSRender::ExecCMD() Enable(m_set_depth_bounds_test, GL_DEPTH_CLAMP); Enable(m_set_blend, GL_BLEND); Enable(m_set_logic_op, GL_LOGIC_OP); - Enable(m_set_cull_face, GL_CULL_FACE); + Enable(m_set_cull_face_enable, GL_CULL_FACE); Enable(m_set_dither, GL_DITHER); Enable(m_set_stencil_test, GL_STENCIL_TEST); Enable(m_set_line_smooth, GL_LINE_SMOOTH); @@ -1991,15 +2059,30 @@ void GLGSRender::ExecCMD() checkForGlError("glBlendColor"); } + if(m_set_cull_face) + { + glCullFace(m_cull_face); + checkForGlError("glCullFace"); + } + + if(m_set_alpha_func && m_set_alpha_ref) + { + glAlphaFunc(m_alpha_func, m_alpha_ref); + checkForGlError("glAlphaFunc"); + } + if(m_set_fog_mode) { glFogi(GL_FOG_MODE, m_fog_mode); + checkForGlError("glFogi(GL_FOG_MODE)"); } if(m_set_fog_params) { glFogf(GL_FOG_START, m_fog_param0); + checkForGlError("glFogf(GL_FOG_START)"); glFogf(GL_FOG_END, m_fog_param1); + checkForGlError("glFogf(GL_FOG_END)"); } if(m_indexed_array.m_count && m_draw_array_count) diff --git a/rpcs3/Emu/GS/GL/GLGSRender.h b/rpcs3/Emu/GS/GL/GLGSRender.h index 805c694b3c..0040935796 100644 --- a/rpcs3/Emu/GS/GL/GLGSRender.h +++ b/rpcs3/Emu/GS/GL/GLGSRender.h @@ -41,6 +41,15 @@ class GLTexture u8 m_aniso_bias; u8 m_signed_remap; + u16 m_bias; + u8 m_min_filter; + u8 m_mag_filter; + u8 m_conv; + u8 m_a_signed; + u8 m_r_signed; + u8 m_g_signed; + u8 m_b_signed; + u32 m_remap; public: @@ -127,6 +136,18 @@ public: m_pitch = pitch; } + void SetFilter(u16 bias, u8 min, u8 mag, u8 conv, u8 a_signed, u8 r_signed, u8 g_signed, u8 b_signed) + { + m_bias = bias; + m_min_filter = min; + m_mag_filter = mag; + m_conv = conv; + m_a_signed = a_signed; + m_r_signed = r_signed; + m_g_signed = g_signed; + m_b_signed = b_signed; + } + u32 GetFormat() const { return m_format; } void SetOffset(const u32 offset) @@ -289,13 +310,25 @@ public: glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_R, GetGlWrap(m_wrapr)); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_COMPARE_FUNC, gl_tex_zfunc[m_zfunc]); - glTexEnvf(GL_TEXTURE_FILTER_CONTROL, GL_TEXTURE_LOD_BIAS, m_aniso_bias); + glTexEnvf(GL_TEXTURE_FILTER_CONTROL, GL_TEXTURE_LOD_BIAS, m_bias); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_LOD, m_minlod); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LOD, m_maxlod); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, m_maxaniso); - //glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); - //glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + static const int gl_tex_filter[] = + { + GL_NEAREST, + GL_NEAREST, + GL_LINEAR, + GL_NEAREST_MIPMAP_NEAREST, + GL_LINEAR_MIPMAP_NEAREST, + GL_NEAREST_MIPMAP_LINEAR, + GL_LINEAR_MIPMAP_LINEAR, + GL_NEAREST, + }; + + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, gl_tex_filter[m_min_filter]); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, gl_tex_filter[m_mag_filter]); //Unbind(); } diff --git a/rpcs3/Emu/GS/GSRender.cpp b/rpcs3/Emu/GS/GSRender.cpp index 225ae860de..75664a9a1a 100644 --- a/rpcs3/Emu/GS/GSRender.cpp +++ b/rpcs3/Emu/GS/GSRender.cpp @@ -94,6 +94,7 @@ u32 GSRender::GetAddress(u32 offset, u8 location) } ConLog.Error("GetAddress(offset=0x%x, location=0x%x", location); + assert(0); return 0; } diff --git a/rpcs3/Emu/GS/RSXThread.h b/rpcs3/Emu/GS/RSXThread.h index 28a61a0898..78dc31eae3 100644 --- a/rpcs3/Emu/GS/RSXThread.h +++ b/rpcs3/Emu/GS/RSXThread.h @@ -22,7 +22,7 @@ public: bool m_set_depth_bounds_test; bool m_depth_test_enable; bool m_set_logic_op; - bool m_set_cull_face; + bool m_set_cull_face_enable; bool m_set_dither; bool m_set_stencil_test; bool m_set_line_smooth; @@ -196,6 +196,15 @@ public: u16 m_surface_clip_y; u16 m_surface_clip_h; + bool m_set_cull_face; + u32 m_cull_face; + + bool m_set_alpha_func; + u32 m_alpha_func; + + bool m_set_alpha_ref; + u32 m_alpha_ref; + u8 m_begin_end; public: @@ -222,7 +231,7 @@ public: m_set_blend_sfactor = false; m_set_blend_dfactor = false; m_set_logic_op = false; - m_set_cull_face = false; + m_set_cull_face_enable = false; m_set_dither = false; m_set_stencil_test = false; m_set_stencil_mask = false; @@ -259,6 +268,9 @@ public: m_set_context_dma_z = false; m_set_surface_clip_horizontal = false; m_set_surface_clip_vertical = false; + m_set_cull_face = false; + m_set_alpha_func = false; + m_set_alpha_ref = false; m_begin_end = 0; }