mirror of
https://github.com/yuzu-emu/yuzu-android.git
synced 2025-06-19 21:17:53 -05:00
video_core: Use un-shifted block sizes to avoid integer divisions
Instead of storing all block width, height and depths in their shifted form: block_width = 1U << block_shift; Store them like they are provided by the emulated hardware (their block_shift form). This way we can avoid doing the costly Common::AlignUp operation to align texture sizes and drop CPU integer divisions with bitwise logic (defined in Common::AlignBits).
This commit is contained in:
@ -63,18 +63,15 @@ public:
|
||||
}
|
||||
|
||||
u32 BlockWidth() const {
|
||||
// The block width is stored in log2 format.
|
||||
return 1 << block_width;
|
||||
return block_width;
|
||||
}
|
||||
|
||||
u32 BlockHeight() const {
|
||||
// The block height is stored in log2 format.
|
||||
return 1 << block_height;
|
||||
return block_height;
|
||||
}
|
||||
|
||||
u32 BlockDepth() const {
|
||||
// The block depth is stored in log2 format.
|
||||
return 1 << block_depth;
|
||||
return block_depth;
|
||||
}
|
||||
};
|
||||
static_assert(sizeof(Surface) == 0x28, "Surface has incorrect size");
|
||||
|
@ -59,11 +59,11 @@ public:
|
||||
};
|
||||
|
||||
u32 BlockHeight() const {
|
||||
return 1 << block_height;
|
||||
return block_height;
|
||||
}
|
||||
|
||||
u32 BlockDepth() const {
|
||||
return 1 << block_depth;
|
||||
return block_depth;
|
||||
}
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user