mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu.git
				synced 2025-05-12 00:45:25 +00:00 
			
		
		
		
	Merge pull request #2713 from wwylele/where-is-my-tc0_w
swrasterizer: add missing tc0_w attribute processing
This commit is contained in:
		
						commit
						d2bb0a6f2d
					
				@ -69,13 +69,14 @@ static void InitScreenCoordinates(Vertex& vtx) {
 | 
			
		||||
    viewport.offset_y = float24::FromFloat32(static_cast<float>(regs.rasterizer.viewport_corner.y));
 | 
			
		||||
 | 
			
		||||
    float24 inv_w = float24::FromFloat32(1.f) / vtx.pos.w;
 | 
			
		||||
    vtx.color *= inv_w;
 | 
			
		||||
    vtx.view *= inv_w;
 | 
			
		||||
    vtx.pos.w = inv_w;
 | 
			
		||||
    vtx.quat *= inv_w;
 | 
			
		||||
    vtx.color *= inv_w;
 | 
			
		||||
    vtx.tc0 *= inv_w;
 | 
			
		||||
    vtx.tc1 *= inv_w;
 | 
			
		||||
    vtx.tc0_w *= inv_w;
 | 
			
		||||
    vtx.view *= inv_w;
 | 
			
		||||
    vtx.tc2 *= inv_w;
 | 
			
		||||
    vtx.pos.w = inv_w;
 | 
			
		||||
 | 
			
		||||
    vtx.screenpos[0] =
 | 
			
		||||
        (vtx.pos.x * inv_w + float24::FromFloat32(1.0)) * viewport.halfsize_x + viewport.offset_x;
 | 
			
		||||
 | 
			
		||||
@ -23,13 +23,15 @@ struct Vertex : Shader::OutputVertex {
 | 
			
		||||
        pos = pos * factor + vtx.pos * (float24::FromFloat32(1) - factor);
 | 
			
		||||
 | 
			
		||||
        // TODO: Should perform perspective correct interpolation here...
 | 
			
		||||
        quat = quat * factor + vtx.quat * (float24::FromFloat32(1) - factor);
 | 
			
		||||
        color = color * factor + vtx.color * (float24::FromFloat32(1) - factor);
 | 
			
		||||
        tc0 = tc0 * factor + vtx.tc0 * (float24::FromFloat32(1) - factor);
 | 
			
		||||
        tc1 = tc1 * factor + vtx.tc1 * (float24::FromFloat32(1) - factor);
 | 
			
		||||
        tc0_w = tc0_w * factor + vtx.tc0_w * (float24::FromFloat32(1) - factor);
 | 
			
		||||
        view = view * factor + vtx.view * (float24::FromFloat32(1) - factor);
 | 
			
		||||
        tc2 = tc2 * factor + vtx.tc2 * (float24::FromFloat32(1) - factor);
 | 
			
		||||
 | 
			
		||||
        screenpos = screenpos * factor + vtx.screenpos * (float24::FromFloat32(1) - factor);
 | 
			
		||||
 | 
			
		||||
        color = color * factor + vtx.color * (float24::FromFloat32(1) - factor);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // Linear interpolation
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user