@ -37,6 +37,7 @@ void Maxwell3D::InitializeRegisterDefaults() {
regs . viewports [ viewport ] . depth_range_near = 0.0f ;
regs . viewports [ viewport ] . depth_range_far = 1.0f ;
}
// Doom and Bomberman seems to use the uninitialized registers and just enable blend
// so initialize blend registers with sane values
regs . blend . equation_rgb = Regs : : Blend : : Equation : : Add ;
@ -66,6 +67,7 @@ void Maxwell3D::InitializeRegisterDefaults() {
regs . stencil_back_func_func = Regs : : ComparisonOp : : Always ;
regs . stencil_back_func_mask = 0xFFFFFFFF ;
regs . stencil_back_mask = 0xFFFFFFFF ;
// TODO(Rodrigo): Most games do not set a point size. I think this is a case of a
// register carrying a default value. Assume it's OpenGL's default (1).
regs . point_size = 1.0f ;
@ -78,6 +80,9 @@ void Maxwell3D::InitializeRegisterDefaults() {
regs . color_mask [ color_mask ] . B . Assign ( 1 ) ;
regs . color_mask [ color_mask ] . A . Assign ( 1 ) ;
}
// Commercial games seem to assume this value is enabled and nouveau sets this value manually.
regs . rt_separate_frag_data = 1 ;
}
void Maxwell3D : : CallMacroMethod ( u32 method , std : : vector < u32 > parameters ) {