@ -303,12 +303,12 @@ std::optional<ShaderDiskCacheDecompiled> ShaderDiskCacheOpenGL::LoadDecompiledEn
for ( u32 i = 0 ; i < const_buffers_count ; + + i ) {
for ( u32 i = 0 ; i < const_buffers_count ; + + i ) {
u32 max_offset { } ;
u32 max_offset { } ;
u32 index { } ;
u32 index { } ;
u8 is_indirect { } ;
bool is_indirect { } ;
if ( ! LoadObjectFromPrecompiled ( max_offset ) | | ! LoadObjectFromPrecompiled ( index ) | |
if ( ! LoadObjectFromPrecompiled ( max_offset ) | | ! LoadObjectFromPrecompiled ( index ) | |
! LoadObjectFromPrecompiled ( is_indirect ) ) {
! LoadObjectFromPrecompiled ( is_indirect ) ) {
return { } ;
return { } ;
}
}
entry . entries . const_buffers . emplace_back ( max_offset , is_indirect ! = 0 , index ) ;
entry . entries . const_buffers . emplace_back ( max_offset , is_indirect , index ) ;
}
}
u32 samplers_count { } ;
u32 samplers_count { } ;
@ -320,18 +320,17 @@ std::optional<ShaderDiskCacheDecompiled> ShaderDiskCacheOpenGL::LoadDecompiledEn
u64 offset { } ;
u64 offset { } ;
u64 index { } ;
u64 index { } ;
u32 type { } ;
u32 type { } ;
u8 is_array { } ;
bool is_array { } ;
u8 is_shadow { } ;
bool is_shadow { } ;
u8 is_bindless { } ;
bool is_bindless { } ;
if ( ! LoadObjectFromPrecompiled ( offset ) | | ! LoadObjectFromPrecompiled ( index ) | |
if ( ! LoadObjectFromPrecompiled ( offset ) | | ! LoadObjectFromPrecompiled ( index ) | |
! LoadObjectFromPrecompiled ( type ) | | ! LoadObjectFromPrecompiled ( is_array ) | |
! LoadObjectFromPrecompiled ( type ) | | ! LoadObjectFromPrecompiled ( is_array ) | |
! LoadObjectFromPrecompiled ( is_shadow ) | | ! LoadObjectFromPrecompiled ( is_bindless ) ) {
! LoadObjectFromPrecompiled ( is_shadow ) | | ! LoadObjectFromPrecompiled ( is_bindless ) ) {
return { } ;
return { } ;
}
}
entry . entries . samplers . emplace_back ( static_cast < std : : size_t > ( offset ) ,
entry . entries . samplers . emplace_back (
static_cast < std : : size_t > ( index ) ,
static_cast < std : : size_t > ( offset ) , static_cast < std : : size_t > ( index ) ,
static_cast < Tegra : : Shader : : TextureType > ( type ) ,
static_cast < Tegra : : Shader : : TextureType > ( type ) , is_array , is_shadow , is_bindless ) ;
is_array ! = 0 , is_shadow ! = 0 , is_bindless ! = 0 ) ;
}
}
u32 global_memory_count { } ;
u32 global_memory_count { } ;
@ -342,21 +341,20 @@ std::optional<ShaderDiskCacheDecompiled> ShaderDiskCacheOpenGL::LoadDecompiledEn
for ( u32 i = 0 ; i < global_memory_count ; + + i ) {
for ( u32 i = 0 ; i < global_memory_count ; + + i ) {
u32 cbuf_index { } ;
u32 cbuf_index { } ;
u32 cbuf_offset { } ;
u32 cbuf_offset { } ;
u8 is_read { } ;
bool is_read { } ;
u8 is_written { } ;
bool is_written { } ;
if ( ! LoadObjectFromPrecompiled ( cbuf_index ) | | ! LoadObjectFromPrecompiled ( cbuf_offset ) | |
if ( ! LoadObjectFromPrecompiled ( cbuf_index ) | | ! LoadObjectFromPrecompiled ( cbuf_offset ) | |
! LoadObjectFromPrecompiled ( is_read ) | | ! LoadObjectFromPrecompiled ( is_written ) ) {
! LoadObjectFromPrecompiled ( is_read ) | | ! LoadObjectFromPrecompiled ( is_written ) ) {
return { } ;
return { } ;
}
}
entry . entries . global_memory_entries . emplace_back ( cbuf_index , cbuf_offset , is_read ! = 0 ,
entry . entries . global_memory_entries . emplace_back ( cbuf_index , cbuf_offset , is_read ,
is_written ! = 0 ) ;
is_written ) ;
}
}
for ( auto & clip_distance : entry . entries . clip_distances ) {
for ( auto & clip_distance : entry . entries . clip_distances ) {
u8 clip_distance_raw { } ;
if ( ! LoadObjectFromPrecompiled ( clip_distance ) ) {
if ( ! LoadObjectFromPrecompiled ( clip_distance_raw ) )
return { } ;
return { } ;
clip_distance = clip_distance_raw ! = 0 ;
}
}
}
u64 shader_length { } ;
u64 shader_length { } ;
@ -384,7 +382,7 @@ bool ShaderDiskCacheOpenGL::SaveDecompiledFile(u64 unique_identifier, const std:
for ( const auto & cbuf : entries . const_buffers ) {
for ( const auto & cbuf : entries . const_buffers ) {
if ( ! SaveObjectToPrecompiled ( static_cast < u32 > ( cbuf . GetMaxOffset ( ) ) ) | |
if ( ! SaveObjectToPrecompiled ( static_cast < u32 > ( cbuf . GetMaxOffset ( ) ) ) | |
! SaveObjectToPrecompiled ( static_cast < u32 > ( cbuf . GetIndex ( ) ) ) | |
! SaveObjectToPrecompiled ( static_cast < u32 > ( cbuf . GetIndex ( ) ) ) | |
! SaveObjectToPrecompiled ( static_cast < u8 > ( cbuf . IsIndirect ( ) ? 1 : 0 ) ) ) {
! SaveObjectToPrecompiled ( cbuf . IsIndirect ( ) ) ) {
return false ;
return false ;
}
}
}
}
@ -396,9 +394,9 @@ bool ShaderDiskCacheOpenGL::SaveDecompiledFile(u64 unique_identifier, const std:
if ( ! SaveObjectToPrecompiled ( static_cast < u64 > ( sampler . GetOffset ( ) ) ) | |
if ( ! SaveObjectToPrecompiled ( static_cast < u64 > ( sampler . GetOffset ( ) ) ) | |
! SaveObjectToPrecompiled ( static_cast < u64 > ( sampler . GetIndex ( ) ) ) | |
! SaveObjectToPrecompiled ( static_cast < u64 > ( sampler . GetIndex ( ) ) ) | |
! SaveObjectToPrecompiled ( static_cast < u32 > ( sampler . GetType ( ) ) ) | |
! SaveObjectToPrecompiled ( static_cast < u32 > ( sampler . GetType ( ) ) ) | |
! SaveObjectToPrecompiled ( static_cast < u8 > ( sampler . IsArray ( ) ? 1 : 0 ) ) | |
! SaveObjectToPrecompiled ( sampler . IsArray ( ) ) | |
! SaveObjectToPrecompiled ( static_cast < u8 > ( sampler . IsShadow ( ) ? 1 : 0 ) ) | |
! SaveObjectToPrecompiled ( sampler . IsShadow ( ) ) | |
! SaveObjectToPrecompiled ( static_cast < u8 > ( sampler . IsBindless ( ) ? 1 : 0 ) ) ) {
! SaveObjectToPrecompiled ( sampler . IsBindless ( ) ) ) {
return false ;
return false ;
}
}
}
}
@ -409,14 +407,13 @@ bool ShaderDiskCacheOpenGL::SaveDecompiledFile(u64 unique_identifier, const std:
for ( const auto & gmem : entries . global_memory_entries ) {
for ( const auto & gmem : entries . global_memory_entries ) {
if ( ! SaveObjectToPrecompiled ( static_cast < u32 > ( gmem . GetCbufIndex ( ) ) ) | |
if ( ! SaveObjectToPrecompiled ( static_cast < u32 > ( gmem . GetCbufIndex ( ) ) ) | |
! SaveObjectToPrecompiled ( static_cast < u32 > ( gmem . GetCbufOffset ( ) ) ) | |
! SaveObjectToPrecompiled ( static_cast < u32 > ( gmem . GetCbufOffset ( ) ) ) | |
! SaveObjectToPrecompiled ( static_cast < u8 > ( gmem . IsRead ( ) ? 1 : 0 ) ) | |
! SaveObjectToPrecompiled ( gmem . IsRead ( ) ) | | ! SaveObjectToPrecompiled ( gmem . IsWritten ( ) ) ) {
! SaveObjectToPrecompiled ( static_cast < u8 > ( gmem . IsWritten ( ) ? 1 : 0 ) ) ) {
return false ;
return false ;
}
}
}
}
for ( const bool clip_distance : entries . clip_distances ) {
for ( const bool clip_distance : entries . clip_distances ) {
if ( ! SaveObjectToPrecompiled ( static_cast < u8 > ( clip_distance ? 1 : 0 ) ) ) {
if ( ! SaveObjectToPrecompiled ( clip_distance ) ) {
return false ;
return false ;
}
}
}
}