Plan OpenGL texture command metadata

This commit is contained in:
2026-06-02 20:59:05 +02:00
parent b4c2117992
commit b6a25474ff
7 changed files with 324 additions and 30 deletions

View File

@@ -21,6 +21,12 @@ enum class OpenGlPlannedCommandKind : std::uint8_t {
bind_sampler,
bind_mesh,
draw,
upload_texture,
generate_mipmaps,
transition_texture,
copy_texture,
read_texture,
capture_frame,
blit_render_target,
end_render_pass,
trace,
@@ -37,7 +43,23 @@ struct OpenGlPlannedCommand {
OpenGlDepthState depth;
OpenGlSamplerState sampler;
OpenGlRendererTextureFormat texture_format;
OpenGlRendererTextureFormat source_texture_format;
OpenGlRendererTextureFormat destination_texture_format;
OpenGlEnumMapping blit_filter;
pp::renderer::TextureState before_state = pp::renderer::TextureState::undefined;
pp::renderer::TextureState after_state = pp::renderer::TextureState::undefined;
pp::renderer::ReadbackRegion readback_region;
pp::renderer::ReadbackRegion source_region;
pp::renderer::ReadbackRegion destination_region;
std::uint64_t upload_bytes = 0;
std::uint32_t generated_mip_levels = 0;
std::uint64_t generated_mip_bytes = 0;
std::uint64_t copy_source_bytes = 0;
std::uint64_t copy_destination_bytes = 0;
std::uint64_t readback_bytes = 0;
std::uint64_t capture_bytes = 0;
std::uint64_t blit_source_bytes = 0;
std::uint64_t blit_destination_bytes = 0;
std::uint32_t primitive_mode = 0;
std::uint32_t draw_vertex_count = 0;
std::uint32_t draw_index_count = 0;
@@ -51,6 +73,12 @@ struct OpenGlCommandPlan {
std::vector<OpenGlPlannedCommand> commands;
std::uint32_t render_pass_count = 0;
std::uint32_t draw_command_count = 0;
std::uint32_t upload_command_count = 0;
std::uint32_t mipmap_command_count = 0;
std::uint32_t transition_command_count = 0;
std::uint32_t copy_command_count = 0;
std::uint32_t readback_command_count = 0;
std::uint32_t capture_command_count = 0;
std::uint32_t passthrough_command_count = 0;
std::uint32_t trace_command_count = 0;
std::uint32_t unsupported_command_count = 0;