Browse Source

gl_rasterizer_cache: Use zeta_width and zeta_height registers for depth buffer.

nce_cpp
bunnei 8 years ago
parent
commit
b00904f10e
  1. 16
      src/video_core/renderer_opengl/gl_rasterizer_cache.cpp
  2. 6
      src/video_core/renderer_opengl/gl_rasterizer_cache.h

16
src/video_core/renderer_opengl/gl_rasterizer_cache.cpp

@ -65,9 +65,9 @@ struct FormatTuple {
return params; return params;
} }
/*static*/ SurfaceParams SurfaceParams::CreateForDepthBuffer(
const Tegra::Engines::Maxwell3D::Regs::RenderTargetConfig& config, Tegra::GPUVAddr zeta_address,
Tegra::DepthFormat format) {
/*static*/ SurfaceParams SurfaceParams::CreateForDepthBuffer(u32 zeta_width, u32 zeta_height,
Tegra::GPUVAddr zeta_address,
Tegra::DepthFormat format) {
SurfaceParams params{}; SurfaceParams params{};
params.addr = zeta_address; params.addr = zeta_address;
@ -77,9 +77,9 @@ struct FormatTuple {
params.component_type = ComponentTypeFromDepthFormat(format); params.component_type = ComponentTypeFromDepthFormat(format);
params.type = GetFormatType(params.pixel_format); params.type = GetFormatType(params.pixel_format);
params.size_in_bytes = params.SizeInBytes(); params.size_in_bytes = params.SizeInBytes();
params.width = config.width;
params.height = config.height;
params.unaligned_height = config.height;
params.width = zeta_width;
params.height = zeta_height;
params.unaligned_height = zeta_height;
params.size_in_bytes = params.SizeInBytes(); params.size_in_bytes = params.SizeInBytes();
return params; return params;
} }
@ -519,8 +519,8 @@ SurfaceSurfaceRect_Tuple RasterizerCacheOpenGL::GetFramebufferSurfaces(
} }
if (using_depth_fb) { if (using_depth_fb) {
depth_params =
SurfaceParams::CreateForDepthBuffer(regs.rt[0], regs.zeta.Address(), regs.zeta.format);
depth_params = SurfaceParams::CreateForDepthBuffer(regs.zeta_width, regs.zeta_height,
regs.zeta.Address(), regs.zeta.format);
} }
MathUtil::Rectangle<u32> color_rect{}; MathUtil::Rectangle<u32> color_rect{};

6
src/video_core/renderer_opengl/gl_rasterizer_cache.h

@ -365,9 +365,9 @@ struct SurfaceParams {
const Tegra::Engines::Maxwell3D::Regs::RenderTargetConfig& config); const Tegra::Engines::Maxwell3D::Regs::RenderTargetConfig& config);
/// Creates SurfaceParams for a depth buffer configuration /// Creates SurfaceParams for a depth buffer configuration
static SurfaceParams CreateForDepthBuffer(
const Tegra::Engines::Maxwell3D::Regs::RenderTargetConfig& config,
Tegra::GPUVAddr zeta_address, Tegra::DepthFormat format);
static SurfaceParams CreateForDepthBuffer(u32 zeta_width, u32 zeta_height,
Tegra::GPUVAddr zeta_address,
Tegra::DepthFormat format);
Tegra::GPUVAddr addr; Tegra::GPUVAddr addr;
bool is_tiled; bool is_tiled;

Loading…
Cancel
Save