@ -268,7 +268,6 @@ u32 ShaderIR::DecodeTexture(NodeBlock& bb, u32 pc) {
" NDV is not implemented " ) ;
" NDV is not implemented " ) ;
auto texture_type = instr . tmml . texture_type . Value ( ) ;
auto texture_type = instr . tmml . texture_type . Value ( ) ;
const bool is_array = instr . tmml . array ! = 0 ;
Node index_var { } ;
Node index_var { } ;
const Sampler * sampler =
const Sampler * sampler =
is_bindless ? GetBindlessSampler ( instr . gpr20 , index_var ) : GetSampler ( instr . sampler ) ;
is_bindless ? GetBindlessSampler ( instr . gpr20 , index_var ) : GetSampler ( instr . sampler ) ;
@ -592,8 +591,9 @@ Node4 ShaderIR::GetTexCode(Instruction instr, TextureType texture_type,
+ + parameter_register ;
+ + parameter_register ;
}
}
const auto [ coord_count , total_coord_count ] = ValidateAndGetCoordinateElement (
const auto coord_counts = ValidateAndGetCoordinateElement ( texture_type , depth_compare , is_array ,
texture_type , depth_compare , is_array , lod_bias_enabled , 4 , 5 ) ;
lod_bias_enabled , 4 , 5 ) ;
const auto coord_count = std : : get < 0 > ( coord_counts ) ;
// If enabled arrays index is always stored in the gpr8 field
// If enabled arrays index is always stored in the gpr8 field
const u64 array_register = instr . gpr8 . Value ( ) ;
const u64 array_register = instr . gpr8 . Value ( ) ;
// First coordinate index is the gpr8 or gpr8 + 1 when arrays are used
// First coordinate index is the gpr8 or gpr8 + 1 when arrays are used
@ -631,8 +631,10 @@ Node4 ShaderIR::GetTexsCode(Instruction instr, TextureType texture_type,
const bool lod_bias_enabled =
const bool lod_bias_enabled =
( process_mode ! = TextureProcessMode : : None & & process_mode ! = TextureProcessMode : : LZ ) ;
( process_mode ! = TextureProcessMode : : None & & process_mode ! = TextureProcessMode : : LZ ) ;
const auto [ coord_count , total_coord_count ] = ValidateAndGetCoordinateElement (
const auto coord_counts = ValidateAndGetCoordinateElement ( texture_type , depth_compare , is_array ,
texture_type , depth_compare , is_array , lod_bias_enabled , 4 , 4 ) ;
lod_bias_enabled , 4 , 4 ) ;
const auto coord_count = std : : get < 0 > ( coord_counts ) ;
// If enabled arrays index is always stored in the gpr8 field
// If enabled arrays index is always stored in the gpr8 field
const u64 array_register = instr . gpr8 . Value ( ) ;
const u64 array_register = instr . gpr8 . Value ( ) ;
// First coordinate index is stored in gpr8 field or (gpr8 + 1) when arrays are used
// First coordinate index is stored in gpr8 field or (gpr8 + 1) when arrays are used