release 0.1.0

This commit is contained in:
InoriRus
2022-05-21 22:04:50 +10:00
parent bc02c0560e
commit a37a9ca253
1056 changed files with 222884 additions and 41332 deletions
@@ -11,6 +11,7 @@
namespace Kyty::Libs::Graphics {
class CommandBuffer;
class CommandProcessor;
struct GraphicContext;
struct VulkanMemory;
struct VulkanBuffer;
@@ -60,10 +61,11 @@ public:
VulkanMemory* mem);
using create_from_objects_func_t = void* (*)(GraphicContext* ctx, CommandBuffer* buffer, const uint64_t* params,
GpuMemoryScenario scenario, const Vector<GpuMemoryObject>& objects, VulkanMemory* mem);
using write_back_func_t = void (*)(GraphicContext* ctx, void* obj, const uint64_t* vaddr, const uint64_t* size, int vaddr_num);
using delete_func_t = void (*)(GraphicContext* ctx, void* obj, VulkanMemory* mem);
using update_func_t = void (*)(GraphicContext* ctx, const uint64_t* params, void* obj, const uint64_t* vaddr, const uint64_t* size,
int vaddr_num);
using write_back_func_t = void (*)(GraphicContext* ctx, const uint64_t* params, void* obj, const uint64_t* vaddr, const uint64_t* size,
int vaddr_num);
using delete_func_t = void (*)(GraphicContext* ctx, void* obj, VulkanMemory* mem);
using update_func_t = void (*)(GraphicContext* ctx, const uint64_t* params, void* obj, const uint64_t* vaddr, const uint64_t* size,
int vaddr_num);
static constexpr int PARAMS_MAX = 8;
@@ -95,11 +97,12 @@ void* GpuMemoryCreateObject(uint64_t submit_id, GraphicContext* ctx, CommandBuff
const GpuObject& info);
void* GpuMemoryCreateObject(uint64_t submit_id, GraphicContext* ctx, CommandBuffer* buffer, const uint64_t* vaddr, const uint64_t* size,
int vaddr_num, const GpuObject& info);
void GpuMemoryResetHash(GraphicContext* ctx, const uint64_t* vaddr, const uint64_t* size, int vaddr_num, GpuMemoryObjectType type);
void GpuMemoryResetHash(const uint64_t* vaddr, const uint64_t* size, int vaddr_num, GpuMemoryObjectType type);
void GpuMemoryDbgDump();
void GpuMemoryFlush(GraphicContext* ctx);
void GpuMemoryFlush(GraphicContext* ctx, uint64_t vaddr, uint64_t size);
void GpuMemoryFlushAll(GraphicContext* ctx);
void GpuMemoryFrameDone();
void GpuMemoryWriteBack(GraphicContext* ctx);
void GpuMemoryWriteBack(GraphicContext* ctx, CommandProcessor* cp);
bool GpuMemoryCheckAccessViolation(uint64_t vaddr, uint64_t size);
bool GpuMemoryWatcherEnabled();
@@ -10,6 +10,11 @@
namespace Kyty::Libs::Graphics {
struct GraphicContext;
void IndexBufferInit();
void IndexBufferDeleteAll(GraphicContext* ctx);
class IndexBufferGpuObject: public GpuObject
{
public:
@@ -16,6 +16,8 @@ struct GraphicContext;
void LabelInit();
constexpr int LABEL_ARGS_MAX = 5;
class LabelGpuObject: public GpuObject
{
public:
@@ -28,6 +30,7 @@ public:
static constexpr int PARAM_ARG_2 = 4;
static constexpr int PARAM_ARG_3 = 5;
static constexpr int PARAM_ARG_4 = 6;
static constexpr int PARAM_ARG_5 = 7;
explicit LabelGpuObject(uint64_t value, callback_t callback_1, callback_t callback_2, const uint64_t* args = nullptr)
{
@@ -40,6 +43,7 @@ public:
params[PARAM_ARG_2] = args[1];
params[PARAM_ARG_3] = args[2];
params[PARAM_ARG_4] = args[3];
params[PARAM_ARG_5] = args[4];
}
check_hash = false;
type = Graphics::GpuMemoryObjectType::Label;
@@ -14,36 +14,41 @@ enum class RenderTextureFormat : uint64_t
{
Unknown,
R8G8B8A8Unorm,
B8G8R8A8Unorm
R8G8B8A8Srgb,
B8G8R8A8Unorm,
B8G8R8A8Srgb,
};
class RenderTextureObject: public GpuObject
{
public:
static constexpr int PARAM_FORMAT = 0;
static constexpr int PARAM_WIDTH = 1;
static constexpr int PARAM_HEIGHT = 2;
static constexpr int PARAM_TILED = 3;
static constexpr int PARAM_NEO = 4;
static constexpr int PARAM_PITCH = 5;
static constexpr int PARAM_FORMAT = 0;
static constexpr int PARAM_WIDTH = 1;
static constexpr int PARAM_HEIGHT = 2;
static constexpr int PARAM_TILED = 3;
static constexpr int PARAM_NEO = 4;
static constexpr int PARAM_PITCH = 5;
static constexpr int PARAM_WRITE_BACK = 6;
explicit RenderTextureObject(RenderTextureFormat pixel_format, uint32_t width, uint32_t height, bool tiled, bool neo, uint32_t pitch)
explicit RenderTextureObject(RenderTextureFormat pixel_format, uint32_t width, uint32_t height, bool tiled, bool neo, uint32_t pitch,
bool write_back)
{
params[PARAM_FORMAT] = static_cast<uint64_t>(pixel_format);
params[PARAM_WIDTH] = width;
params[PARAM_HEIGHT] = height;
params[PARAM_TILED] = tiled ? 1 : 0;
params[PARAM_NEO] = neo ? 1 : 0;
params[PARAM_PITCH] = pitch;
check_hash = true;
type = Graphics::GpuMemoryObjectType::RenderTexture;
params[PARAM_FORMAT] = static_cast<uint64_t>(pixel_format);
params[PARAM_WIDTH] = width;
params[PARAM_HEIGHT] = height;
params[PARAM_TILED] = tiled ? 1 : 0;
params[PARAM_NEO] = neo ? 1 : 0;
params[PARAM_PITCH] = pitch;
params[PARAM_WRITE_BACK] = write_back ? 1 : 0;
check_hash = true;
type = Graphics::GpuMemoryObjectType::RenderTexture;
}
bool Equal(const uint64_t* other) const override;
[[nodiscard]] create_func_t GetCreateFunc() const override;
[[nodiscard]] create_from_objects_func_t GetCreateFromObjectsFunc() const override;
[[nodiscard]] write_back_func_t GetWriteBackFunc() const override { return nullptr; };
[[nodiscard]] write_back_func_t GetWriteBackFunc() const override;
[[nodiscard]] delete_func_t GetDeleteFunc() const override;
[[nodiscard]] update_func_t GetUpdateFunc() const override;
};