diff options
Diffstat (limited to 'src/video_core/textures/decoders.h')
| -rw-r--r-- | src/video_core/textures/decoders.h | 33 |
1 files changed, 6 insertions, 27 deletions
diff --git a/src/video_core/textures/decoders.h b/src/video_core/textures/decoders.h index 31a11708f..e70407692 100644 --- a/src/video_core/textures/decoders.h +++ b/src/video_core/textures/decoders.h | |||
| @@ -40,7 +40,6 @@ constexpr SwizzleTable MakeSwizzleTable() { | |||
| 40 | } | 40 | } |
| 41 | return table; | 41 | return table; |
| 42 | } | 42 | } |
| 43 | constexpr SwizzleTable SWIZZLE_TABLE = MakeSwizzleTable(); | ||
| 44 | 43 | ||
| 45 | /// Unswizzles a block linear texture into linear memory. | 44 | /// Unswizzles a block linear texture into linear memory. |
| 46 | void UnswizzleTexture(std::span<u8> output, std::span<const u8> input, u32 bytes_per_pixel, | 45 | void UnswizzleTexture(std::span<u8> output, std::span<const u8> input, u32 bytes_per_pixel, |
| @@ -57,34 +56,14 @@ std::size_t CalculateSize(bool tiled, u32 bytes_per_pixel, u32 width, u32 height | |||
| 57 | u32 block_height, u32 block_depth); | 56 | u32 block_height, u32 block_depth); |
| 58 | 57 | ||
| 59 | /// Copies an untiled subrectangle into a tiled surface. | 58 | /// Copies an untiled subrectangle into a tiled surface. |
| 60 | void SwizzleSubrect(u32 subrect_width, u32 subrect_height, u32 source_pitch, u32 swizzled_width, | 59 | void SwizzleSubrect(std::span<u8> output, std::span<const u8> input, u32 bytes_per_pixel, u32 width, |
| 61 | u32 bytes_per_pixel, u8* swizzled_data, const u8* unswizzled_data, | 60 | u32 height, u32 depth, u32 origin_x, u32 origin_y, u32 extent_x, u32 extent_y, |
| 62 | u32 block_height_bit, u32 offset_x, u32 offset_y); | 61 | u32 block_height, u32 block_depth, u32 pitch_linear); |
| 63 | 62 | ||
| 64 | /// Copies a tiled subrectangle into a linear surface. | 63 | /// Copies a tiled subrectangle into a linear surface. |
| 65 | void UnswizzleSubrect(u32 line_length_in, u32 line_count, u32 pitch, u32 width, u32 bytes_per_pixel, | 64 | void UnswizzleSubrect(std::span<u8> output, std::span<const u8> input, u32 bytes_per_pixel, |
| 66 | u32 block_height, u32 origin_x, u32 origin_y, u8* output, const u8* input); | 65 | u32 width, u32 height, u32 depth, u32 origin_x, u32 origin_y, u32 extent_x, |
| 67 | 66 | u32 extent_y, u32 block_height, u32 block_depth, u32 pitch_linear); | |
| 68 | /// @brief Swizzles a 2D array of pixels into a 3D texture | ||
| 69 | /// @param line_length_in Number of pixels per line | ||
| 70 | /// @param line_count Number of lines | ||
| 71 | /// @param pitch Number of bytes per line | ||
| 72 | /// @param width Width of the swizzled texture | ||
| 73 | /// @param height Height of the swizzled texture | ||
| 74 | /// @param bytes_per_pixel Number of bytes used per pixel | ||
| 75 | /// @param block_height Block height shift | ||
| 76 | /// @param block_depth Block depth shift | ||
| 77 | /// @param origin_x Column offset in pixels of the swizzled texture | ||
| 78 | /// @param origin_y Row offset in pixels of the swizzled texture | ||
| 79 | /// @param output Pointer to the pixels of the swizzled texture | ||
| 80 | /// @param input Pointer to the 2D array of pixels used as input | ||
| 81 | /// @pre input and output points to an array large enough to hold the number of bytes used | ||
| 82 | void SwizzleSliceToVoxel(u32 line_length_in, u32 line_count, u32 pitch, u32 width, u32 height, | ||
| 83 | u32 bytes_per_pixel, u32 block_height, u32 block_depth, u32 origin_x, | ||
| 84 | u32 origin_y, u8* output, const u8* input); | ||
| 85 | |||
| 86 | void SwizzleKepler(u32 width, u32 height, u32 dst_x, u32 dst_y, u32 block_height, | ||
| 87 | std::size_t copy_size, const u8* source_data, u8* swizzle_data); | ||
| 88 | 67 | ||
| 89 | /// Obtains the offset of the gob for positions 'dst_x' & 'dst_y' | 68 | /// Obtains the offset of the gob for positions 'dst_x' & 'dst_y' |
| 90 | u64 GetGOBOffset(u32 width, u32 height, u32 dst_x, u32 dst_y, u32 block_height, | 69 | u64 GetGOBOffset(u32 width, u32 height, u32 dst_x, u32 dst_y, u32 block_height, |