载入中...
搜索中...
未找到
eve::graphics::vulkan 命名空间参考

类

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

◆ GpuInstance

◆ GpuMaterialRecord

◆ 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 行定义.

引用了 first , 以及 second.

◆ 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.

参数
jobsEngine 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.

参数
graphCompiled FrameGraph whose passes should be recorded.
jobsEngine 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()

template<class TextureImage >
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 
)

在文件 GraphicsTexture.cpp 第 38 行定义.

引用了 depth, height, image, layer, offset , 以及 width.

◆ uploadTextureForAllShaderStages()

template<class TextureImage >
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 
)

◆ 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 uint32_t eve::graphics::vulkan::kHZBHeaderWords = 16
constexpr

在文件 GpuDriven.h 第 26 行定义.

◆ kInvalidBindlessSlot

◆ kMaxBindlessCubemaps

constexpr uint32_t eve::graphics::vulkan::kMaxBindlessCubemaps = eve::graphics::kMaxGpuDrivenCubemaps
constexpr

在文件 GpuDriven.h 第 20 行定义.

◆ kMaxBindlessSsbo

constexpr uint32_t eve::graphics::vulkan::kMaxBindlessSsbo = 64
constexpr

在文件 GpuDriven.h 第 21 行定义.

◆ kMaxBindlessTextures

constexpr uint32_t eve::graphics::vulkan::kMaxBindlessTextures = eve::graphics::kMaxGpuDrivenTextures
constexpr

在文件 GpuDriven.h 第 19 行定义.

◆ kMaxGpuDrivenBuckets

◆ kMaxGpuDrivenInstances

◆ kMaxHzbMips

constexpr uint32_t eve::graphics::vulkan::kMaxHzbMips = 16
constexpr

在文件 GpuDriven.h 第 25 行定义.