RenderPipeline
Description
- Derived from
-
Disposable abstract
INativeHandle
Full source code is included in the Tinman 3D SDK download. |
Represents the low-level D3D12 rendering pipeline logic that is required by the IGraphicsContext API.
The native handle (see INativeHandle) of a render pipeline is the ID3D12CommandQueue*
pointer to the command queue.
Public / Methods
DescriptorAllocate
Allocates a range of descriptors from the given pool.
The descriptor range ID 0
refers to an empty range of descriptors and may be used as a null
value.
DescriptorAllocateThrow
Allocates a range of descriptors from the given pool.
The descriptor range ID 0
refers to an empty range of descriptors and may be used as a null
value.
- RenderException
-
If the descriptor pool is exhausted.
DescriptorHandleCpu
Returns the D3D12_CPU_DESCRIPTOR_HANDLE
value for the given range of descriptors.
This method guarantees to return the same D3D12_CPU_DESCRIPTOR_HANDLE
value for each descriptor in the given range in, unless Reset is called: in this case, different D3D12_CPU_DESCRIPTOR_HANDLE
values may be returned.
DescriptorHandleGpu
Returns the D3D12_GPU_DESCRIPTOR_HANDLE
value for the given range of descriptors.
This method guarantees to return the same D3D12_GPU_DESCRIPTOR_HANDLE
value for each descriptor in the given range in, unless Reset is called: in this case, different D3D12_GPU_DESCRIPTOR_HANDLE
values may be returned.
DescriptorReleaseWhenDone
Releases the given range of descriptors once the GPU has finished all work that has been submitted so far.
Reset
Resets the pipeline for a new IBeginEnd.Begin/IBeginEnd.End cycle of the IGraphicsContext.
This method will wait until all GPU work for the last frame has finished, blocking the calling thread if necessary.
UploadBytes
Uploads bytes from system memory to GPU buffer while obeying GpuUpdateFlag.Discard semantic.
UploadTexels
Uploads texels from system memory to a GPU texture while obeying GpuUpdateFlag.Discard semantic.
A texel upload may be rejected iff:
-
The amount of data to upload is greater than the capacity of the upload buffer.
-
After waiting for 1000ms for the GPU to process finish pending texel upload jobs, in order to make sufficient room in the upload buffer.
UseGeometry
Subsequent work on the command list shall use the vertex and index buffers of the given geometry.
UseTargets
Subsequent work on the command list shall use the given render targets.
Each render target (see RenderTargets.Get) must either be null
or an instance of IPipelineRenderTarget.
Public / Attributes
FenceCpu
Returns the current fence value, as declared by the CPU.
This value represents the amount of work that has been accumulated to the command list.
FenceGpu
Returns the current fence value, as reported by the GPU.
This value represents the amount of work the has been processed by the GPU.
PipelineState
The current pipeline state.
The current pipeline state will be applied when Begin is called, passing true
to the state
parameter.