2024-09-25 15:00:55 +02:00
|
|
|
#pragma once
|
2024-09-28 02:12:12 +02:00
|
|
|
#include "gnm/constants.hpp"
|
2024-09-25 15:00:55 +02:00
|
|
|
#include "tiler.hpp"
|
|
|
|
|
#include <Scheduler.hpp>
|
|
|
|
|
#include <memory>
|
|
|
|
|
|
|
|
|
|
namespace amdgpu {
|
|
|
|
|
struct GpuTiler {
|
|
|
|
|
struct Impl;
|
|
|
|
|
GpuTiler();
|
|
|
|
|
~GpuTiler();
|
|
|
|
|
|
|
|
|
|
void detile(Scheduler &scheduler, const amdgpu::SurfaceInfo &info,
|
2024-09-28 02:12:12 +02:00
|
|
|
amdgpu::TileMode tileMode, gnm::DataFormat dfmt,
|
2024-10-01 20:51:43 +02:00
|
|
|
std::uint64_t srcTiledAddress, std::uint64_t srcSize,
|
|
|
|
|
std::uint64_t dstLinearAddress, std::uint64_t dstSize,
|
2024-09-28 02:12:12 +02:00
|
|
|
int mipLevel, int baseArray, int arrayCount);
|
2024-09-25 15:00:55 +02:00
|
|
|
void tile(Scheduler &scheduler, const amdgpu::SurfaceInfo &info,
|
2024-09-28 02:12:12 +02:00
|
|
|
amdgpu::TileMode tileMode, gnm::DataFormat dfmt,
|
2024-10-01 20:51:43 +02:00
|
|
|
std::uint64_t srcLinearAddress, std::uint64_t srcSize,
|
|
|
|
|
std::uint64_t dstTiledAddress, std::uint64_t dstSize, int mipLevel,
|
|
|
|
|
int baseArray, int arrayCount);
|
2024-09-25 15:00:55 +02:00
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
std::unique_ptr<Impl> mImpl;
|
|
|
|
|
};
|
|
|
|
|
} // namespace amdgpu
|