Add renderer trace scope contract

This commit is contained in:
2026-06-02 16:55:23 +02:00
parent 07293c0590
commit bbe3db1747
9 changed files with 305 additions and 101 deletions

View File

@@ -16,6 +16,7 @@ constexpr std::uint32_t max_texture_slots = 32;
constexpr std::uint64_t max_texture_bytes = 1024ULL * 1024ULL * 1024ULL;
constexpr std::size_t max_shader_source_bytes = 4ULL * 1024ULL * 1024ULL;
constexpr std::size_t max_shader_uniform_bytes = 64ULL * 1024ULL;
constexpr std::size_t max_trace_label_bytes = 256;
enum class TextureFormat : std::uint8_t {
rgba8,
@@ -244,7 +245,9 @@ public:
class IRenderTrace {
public:
virtual ~IRenderTrace() = default;
virtual void marker(const char* component, const char* name) noexcept = 0;
[[nodiscard]] virtual pp::foundation::Status marker(const char* component, const char* name) noexcept = 0;
[[nodiscard]] virtual pp::foundation::Status begin_scope(const char* component, const char* name) noexcept = 0;
[[nodiscard]] virtual pp::foundation::Status end_scope() noexcept = 0;
};
class ICommandContext {
@@ -338,6 +341,7 @@ public:
[[nodiscard]] pp::foundation::Status validate_shader_uniform_write(
const char* name,
std::span<const std::byte> bytes) noexcept;
[[nodiscard]] pp::foundation::Status validate_trace_label(const char* component, const char* name) noexcept;
[[nodiscard]] pp::foundation::Result<std::uint64_t> texture_byte_size(TextureDesc desc) noexcept;
[[nodiscard]] pp::foundation::Result<std::uint64_t> readback_byte_size(
TextureDesc desc,