类 | |
| struct | ColorVertex |
| ColorVertex public API. 更多... | |
| class | ComputePass |
| Minimal compute pipeline wrapper for in-frame compute sections. 更多... | |
| struct | DeferredLightingUBO |
| DeferredLightingUBO public API. 更多... | |
| class | FrameArena |
| Per-frame GPU allocation arena (host-visible coherent). 更多... | |
| struct | GpuCullParams |
Cull-params UBO (std140). Mirrors GLSL CullParams in shaders/gpu_driven_cull_common.glsl (240 bytes). 更多... | |
| struct | GpuDrivenCaps |
Capabilities required for the GPU-driven path. All must be true for gpuDrivenAvailable(). Probing happens once at device creation. 更多... | |
| struct | GpuMesh |
| GpuMesh public API. 更多... | |
| struct | GpuShader |
| GpuShader public API. 更多... | |
| struct | GpuTexture |
| GpuTexture public API. 更多... | |
| class | Graphics |
| EVENGINE_API_BACKENDS public API. 更多... | |
| struct | Mesh3DClusteredUBO |
| Mesh3DClusteredUBO public API. 更多... | |
| struct | Mesh3DUBO |
| Mesh3DUBO public API. 更多... | |
| struct | MeshShaderResources |
| struct | MeshShaderResourcesDeleter |
| MeshShaderResourcesDeleter public API. 更多... | |
| struct | MeshVertex |
| MeshVertex public API. 更多... | |
| class | OffscreenCanvas |
| OffscreenCanvas public API. 更多... | |
| struct | Primitive3DVertex |
| Clip-space vertex emitted by the backend-neutral primitive tessellator. 更多... | |
| struct | SkinPassUBO |
| SkinPassUBO public API. 更多... | |
| struct | TexturedVertex |
| TexturedVertex public API. 更多... | |
| struct | UiTextureDraw |
| Backend-internal textured rectangle queued by a UI presenter. 更多... | |
类型定义 | |
| using | GpuMeshRecord = eve::graphics::GpuMeshRecord |
| GPU-driven rendering shared constants + std430 GPU layouts. | |
| using | GpuMaterialRecord = eve::graphics::GpuMaterialRecord |
| using | GpuInstance = eve::graphics::GpuInstance |
| using | GpuIndirectCommand = eve::graphics::GpuIndirectCommand |
函数 | |
| vkb::PassRecordExecutor | jobSystemPassExecutor (eve::thread::JobSystem *jobs) |
| Build a vkb::PassRecordExecutor backed by the engine JobSystem. | |
| void | recordFrameGraphWithJobSystem (vkb::FrameGraph &graph, eve::thread::JobSystem *jobs) |
| Record a vkb::FrameGraph with the engine JobSystem as the parallel recording executor. | |
| vk::Pipeline | createSolidColorPipeline (vkb::Device &device, const vkb::BuiltRenderPass &renderPass, vk::PipelineLayout layout, BlendMode mode=BlendMode::Opaque) |
| Internal synchronous pipeline factory; caller destroys the returned Vulkan pipeline. | |
| bool | isMeshResourceImageShared (const GpuShader &first, std::uint32_t firstSlot, const GpuShader &second, std::uint32_t secondSlot) |
| Query whether two live shader image slots share immutable GPU storage. @ownership Borrows both shaders for this render-thread call only; invalid slots return false. | |
| Result< void > | validateMeshResourceShaderReload (const GpuShader &shader, std::span< const uint32_t > vertex, std::span< const uint32_t > fragment) |
| Validate mesh resource shader reload. | |
| std::uint32_t | meshResourceInstanceCount (const GpuShader &shader) |
| Immutable uploaded instance count; render-thread read, no retained borrow. | |
| template<class TextureImage > | |
| void | recordTextureCopies (vk::CommandBuffer cb, TextureImage &image, vkb::GenericBuffer &staging, uint32_t width, uint32_t height, uint32_t depth, uint32_t mipLevels, uint32_t layers, uint32_t bytesPerPixel=4) |
| template<class TextureImage > | |
| void | uploadTextureForAllShaderStages (vkb::Device &device, vk::CommandPool commandPool, vk::Queue graphicsQueue, TextureImage &image, uint32_t width, uint32_t height, uint32_t mipLevels, uint32_t layers, const std::vector< uint8_t > &bytes, uint32_t bytesPerPixel=4, uint32_t depth=1) |
变量 | |
| constexpr uint32_t | kMaxBindlessTextures = eve::graphics::kMaxGpuDrivenTextures |
| constexpr uint32_t | kMaxBindlessCubemaps = eve::graphics::kMaxGpuDrivenCubemaps |
| constexpr uint32_t | kMaxBindlessSsbo = 64 |
| constexpr uint32_t | kInvalidBindlessSlot = eve::graphics::kInvalidGpuDrivenSlot |
| constexpr uint32_t | kMaxGpuDrivenInstances = 65536 |
| constexpr uint32_t | kMaxGpuDrivenBuckets = 65536 |
| constexpr uint32_t | kMaxHzbMips = 16 |
| constexpr uint32_t | kHZBHeaderWords = 16 |
类型定义说明
◆ GpuIndirectCommand
在文件 GpuDriven.h 第 18 行定义.
◆ GpuInstance
| using eve::graphics::vulkan::GpuInstance = typedef eve::graphics::GpuInstance |
在文件 GpuDriven.h 第 17 行定义.
◆ GpuMaterialRecord
在文件 GpuDriven.h 第 16 行定义.
◆ GpuMeshRecord
| using eve::graphics::vulkan::GpuMeshRecord = typedef eve::graphics::GpuMeshRecord |
GPU-driven rendering shared constants + std430 GPU layouts.
These layouts are mirrored by the GLSL shaders that consume the bindless table (mesh3d_gpudriven.*) and by the compute passes (stage 2+). Keep alignment rules in sync with the GLSL structs.
在文件 GpuDriven.h 第 15 行定义.
函数说明
◆ createSolidColorPipeline()
| vk::Pipeline eve::graphics::vulkan::createSolidColorPipeline | ( | vkb::Device & | device, |
| const vkb::BuiltRenderPass & | renderPass, | ||
| vk::PipelineLayout | layout, | ||
| BlendMode | mode | ||
| ) |
Internal synchronous pipeline factory; caller destroys the returned Vulkan pipeline.
在文件 GraphicsOffscreenPipeline.cpp 第 13 行定义.
引用了 eve::Additive, eve::Alpha, device, layout, eve::Multiply , 以及 eve::Premultiplied.
◆ isMeshResourceImageShared()
| EVENGINE_API_BACKENDS bool eve::graphics::vulkan::isMeshResourceImageShared | ( | const GpuShader & | first, |
| std::uint32_t | firstSlot, | ||
| const GpuShader & | second, | ||
| std::uint32_t | secondSlot | ||
| ) |
Query whether two live shader image slots share immutable GPU storage. @ownership Borrows both shaders for this render-thread call only; invalid slots return false.
在文件 GraphicsShaderResources.cpp 第 56 行定义.
◆ jobSystemPassExecutor()
| EVENGINE_API_BACKENDS vkb::PassRecordExecutor eve::graphics::vulkan::jobSystemPassExecutor | ( | eve::thread::JobSystem * | jobs | ) |
Build a vkb::PassRecordExecutor backed by the engine JobSystem.
The returned executor records every pass in a layer concurrently (one frame-scoped job per pass), joins the layer, then continues with the next layer. Exposed separately so the executor contract can be unit-tested without a Vulkan device.
- 参数
-
jobs Engine JobSystem; must have an active beginFrame()/endFrame() bracket. May be null, in which case recording is serial.
在文件 FrameGraphJobs.cpp 第 12 行定义.
引用了 eve::thread::JobSystem::createFrameTaskGroup(), eve::thread::TaskGroup::fork(), group , 以及 order.
被这些函数引用 recordFrameGraphWithJobSystem().
◆ meshResourceInstanceCount()
| std::uint32_t eve::graphics::vulkan::meshResourceInstanceCount | ( | const GpuShader & | shader | ) |
Immutable uploaded instance count; render-thread read, no retained borrow.
在文件 GraphicsShaderResources.cpp 第 72 行定义.
引用了 shader.
◆ recordFrameGraphWithJobSystem()
| void eve::graphics::vulkan::recordFrameGraphWithJobSystem | ( | vkb::FrameGraph & | graph, |
| eve::thread::JobSystem * | jobs | ||
| ) |
Record a vkb::FrameGraph with the engine JobSystem as the parallel recording executor.
vkb::FrameGraph groups independent passes into layers; passes inside one layer share no dependency edge, so their command buffers can be recorded concurrently. This executor forks one frame-scoped job per pass in the layer, joins them, then moves to the next layer (layers stay sequential — that is the framegraph's threading contract).
The caller must keep a JobSystem frame bracket open (beginFrame() before, endFrame() after) so the fork/join groups come from the per-frame arena and recording allocates no job control blocks per frame.
- 参数
-
graph Compiled FrameGraph whose passes should be recorded. jobs Engine JobSystem; must have an active beginFrame()/endFrame() bracket. May be null, in which case recording is serial.
在文件 FrameGraphJobs.cpp 第 36 行定义.
引用了 graph, jobSystemPassExecutor() , 以及 recordFrameGraphWithJobSystem().
被这些函数引用 recordFrameGraphWithJobSystem().
◆ recordTextureCopies()
| void eve::graphics::vulkan::recordTextureCopies | ( | vk::CommandBuffer | cb, |
| TextureImage & | image, | ||
| vkb::GenericBuffer & | staging, | ||
| uint32_t | width, | ||
| uint32_t | height, | ||
| uint32_t | depth, | ||
| uint32_t | mipLevels, | ||
| uint32_t | layers, | ||
| uint32_t | bytesPerPixel = 4 |
||
| ) |
◆ uploadTextureForAllShaderStages()
| void eve::graphics::vulkan::uploadTextureForAllShaderStages | ( | vkb::Device & | device, |
| vk::CommandPool | commandPool, | ||
| vk::Queue | graphicsQueue, | ||
| TextureImage & | image, | ||
| uint32_t | width, | ||
| uint32_t | height, | ||
| uint32_t | mipLevels, | ||
| uint32_t | layers, | ||
| const std::vector< uint8_t > & | bytes, | ||
| uint32_t | bytesPerPixel = 4, |
||
| uint32_t | depth = 1 |
||
| ) |
在文件 GraphicsTexture.cpp 第 55 行定义.
被这些函数引用 eve::graphics::vulkan::Graphics::newCubemap(), eve::graphics::vulkan::Graphics::newTexture(), eve::graphics::vulkan::Graphics::newTexture3DRgba8(), eve::graphics::vulkan::Graphics::newTextureArrayRgba16f(), eve::graphics::vulkan::Graphics::newTextureMipChain() , 以及 eve::graphics::vulkan::Graphics::replaceTexturePixelsRGBA().
◆ validateMeshResourceShaderReload()
| Result< void > eve::graphics::vulkan::validateMeshResourceShaderReload | ( | const GpuShader & | shader, |
| std::span< const uint32_t > | vertex, | ||
| std::span< const uint32_t > | fragment | ||
| ) |
Validate mesh resource shader reload.
在文件 GraphicsShaderResources.cpp 第 63 行定义.
引用了 shader, eve::Result< T >::success() , 以及 eve::graphics::detail::validateResourceShaderStages().
被这些函数引用 eve::graphics::vulkan::Graphics::replaceShaderFromSpv().
变量说明
◆ kHZBHeaderWords
|
constexpr |
在文件 GpuDriven.h 第 26 行定义.
◆ kInvalidBindlessSlot
|
constexpr |
在文件 GpuDriven.h 第 22 行定义.
被这些函数引用 eve::graphics::vulkan::Graphics::bindlessSlot2D(), eve::graphics::vulkan::Graphics::bindlessSlotCube(), eve::graphics::vulkan::Graphics::debugBindlessIndex(), eve::graphics::vulkan::Graphics::debugMeshRecordIndex(), eve::graphics::vulkan::Graphics::gpuDrivenMeshRecord(), eve::graphics::vulkan::Graphics::gpuDrivenVgAssetId(), eve::graphics::vulkan::Graphics::gpuDrivenVgAttachToMesh(), eve::graphics::vulkan::Graphics::gpuDrivenVgUpload() , 以及 eve::graphics::vulkan::Graphics::materialTableGetOrCreate().
◆ kMaxBindlessCubemaps
|
constexpr |
在文件 GpuDriven.h 第 20 行定义.
◆ kMaxBindlessSsbo
|
constexpr |
在文件 GpuDriven.h 第 21 行定义.
◆ kMaxBindlessTextures
|
constexpr |
在文件 GpuDriven.h 第 19 行定义.
◆ kMaxGpuDrivenBuckets
|
constexpr |
◆ kMaxGpuDrivenInstances
|
constexpr |
◆ kMaxHzbMips
|
constexpr |
在文件 GpuDriven.h 第 25 行定义.