shader: Fix Array Indices in TEX/TLD4
This commit is contained in:
		@@ -61,11 +61,11 @@ IR::Value MakeCoords(TranslatorVisitor& v, IR::Reg reg, TextureType type) {
 | 
			
		||||
    case TextureType::_1D:
 | 
			
		||||
        return v.F(reg);
 | 
			
		||||
    case TextureType::ARRAY_1D:
 | 
			
		||||
        return v.ir.CompositeConstruct(read_array(), v.F(reg + 1));
 | 
			
		||||
        return v.ir.CompositeConstruct(v.F(reg + 1), read_array());
 | 
			
		||||
    case TextureType::_2D:
 | 
			
		||||
        return v.ir.CompositeConstruct(v.F(reg), v.F(reg + 1));
 | 
			
		||||
    case TextureType::ARRAY_2D:
 | 
			
		||||
        return v.ir.CompositeConstruct(read_array(), v.F(reg + 1), v.F(reg + 2));
 | 
			
		||||
        return v.ir.CompositeConstruct(v.F(reg + 1), v.F(reg + 2), read_array());
 | 
			
		||||
    case TextureType::_3D:
 | 
			
		||||
        return v.ir.CompositeConstruct(v.F(reg), v.F(reg + 1), v.F(reg + 2));
 | 
			
		||||
    case TextureType::ARRAY_3D:
 | 
			
		||||
@@ -73,7 +73,7 @@ IR::Value MakeCoords(TranslatorVisitor& v, IR::Reg reg, TextureType type) {
 | 
			
		||||
    case TextureType::CUBE:
 | 
			
		||||
        return v.ir.CompositeConstruct(v.F(reg), v.F(reg + 1), v.F(reg + 2));
 | 
			
		||||
    case TextureType::ARRAY_CUBE:
 | 
			
		||||
        return v.ir.CompositeConstruct(read_array(), v.F(reg + 1), v.F(reg + 2), v.F(reg + 3));
 | 
			
		||||
        return v.ir.CompositeConstruct(v.F(reg + 1), v.F(reg + 2), v.F(reg + 3), read_array());
 | 
			
		||||
    }
 | 
			
		||||
    throw NotImplementedException("Invalid texture type {}", type);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -65,11 +65,11 @@ IR::Value MakeCoords(TranslatorVisitor& v, IR::Reg reg, TextureType type) {
 | 
			
		||||
    case TextureType::_1D:
 | 
			
		||||
        return v.F(reg);
 | 
			
		||||
    case TextureType::ARRAY_1D:
 | 
			
		||||
        return v.ir.CompositeConstruct(read_array(), v.F(reg + 1));
 | 
			
		||||
        return v.ir.CompositeConstruct(v.F(reg + 1), read_array());
 | 
			
		||||
    case TextureType::_2D:
 | 
			
		||||
        return v.ir.CompositeConstruct(v.F(reg), v.F(reg + 1));
 | 
			
		||||
    case TextureType::ARRAY_2D:
 | 
			
		||||
        return v.ir.CompositeConstruct(read_array(), v.F(reg + 1), v.F(reg + 2));
 | 
			
		||||
        return v.ir.CompositeConstruct(v.F(reg + 1), v.F(reg + 2), read_array());
 | 
			
		||||
    case TextureType::_3D:
 | 
			
		||||
        return v.ir.CompositeConstruct(v.F(reg), v.F(reg + 1), v.F(reg + 2));
 | 
			
		||||
    case TextureType::ARRAY_3D:
 | 
			
		||||
@@ -77,7 +77,7 @@ IR::Value MakeCoords(TranslatorVisitor& v, IR::Reg reg, TextureType type) {
 | 
			
		||||
    case TextureType::CUBE:
 | 
			
		||||
        return v.ir.CompositeConstruct(v.F(reg), v.F(reg + 1), v.F(reg + 2));
 | 
			
		||||
    case TextureType::ARRAY_CUBE:
 | 
			
		||||
        return v.ir.CompositeConstruct(read_array(), v.F(reg + 1), v.F(reg + 2), v.F(reg + 3));
 | 
			
		||||
        return v.ir.CompositeConstruct(v.F(reg + 1), v.F(reg + 2), v.F(reg + 3), read_array());
 | 
			
		||||
    }
 | 
			
		||||
    throw NotImplementedException("Invalid texture type {}", type);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user