mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-03-14 22:29:15 +01:00
[dxvk] Add Xfb context state
This commit is contained in:
parent
989a10ab88
commit
52e1671167
@ -22,6 +22,7 @@ namespace dxvk {
|
|||||||
*/
|
*/
|
||||||
enum class DxvkContextFlag : uint64_t {
|
enum class DxvkContextFlag : uint64_t {
|
||||||
GpRenderPassBound, ///< Render pass is currently bound
|
GpRenderPassBound, ///< Render pass is currently bound
|
||||||
|
GpXfbActive, ///< Transform feedback is enabled
|
||||||
GpClearRenderTargets, ///< Render targets need to be cleared
|
GpClearRenderTargets, ///< Render targets need to be cleared
|
||||||
GpDirtyFramebuffer, ///< Framebuffer binding is out of date
|
GpDirtyFramebuffer, ///< Framebuffer binding is out of date
|
||||||
GpDirtyPipeline, ///< Graphics pipeline binding is out of date
|
GpDirtyPipeline, ///< Graphics pipeline binding is out of date
|
||||||
@ -31,6 +32,7 @@ namespace dxvk {
|
|||||||
GpDirtyDescriptorSet, ///< Graphics descriptor set needs to be updated
|
GpDirtyDescriptorSet, ///< Graphics descriptor set needs to be updated
|
||||||
GpDirtyVertexBuffers, ///< Vertex buffer bindings are out of date
|
GpDirtyVertexBuffers, ///< Vertex buffer bindings are out of date
|
||||||
GpDirtyIndexBuffer, ///< Index buffer binding are out of date
|
GpDirtyIndexBuffer, ///< Index buffer binding are out of date
|
||||||
|
GpDirtyXfbBuffers, ///< Transform feedback buffer bindings are out of date
|
||||||
GpDirtyBlendConstants, ///< Blend constants have changed
|
GpDirtyBlendConstants, ///< Blend constants have changed
|
||||||
GpDirtyStencilRef, ///< Stencil reference has changed
|
GpDirtyStencilRef, ///< Stencil reference has changed
|
||||||
GpDirtyViewport, ///< Viewport state has changed
|
GpDirtyViewport, ///< Viewport state has changed
|
||||||
@ -86,6 +88,12 @@ namespace dxvk {
|
|||||||
DxvkBlendConstants blendConstants = { 0.0f, 0.0f, 0.0f, 0.0f };
|
DxvkBlendConstants blendConstants = { 0.0f, 0.0f, 0.0f, 0.0f };
|
||||||
uint32_t stencilReference = 0;
|
uint32_t stencilReference = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
struct DxvkXfbState {
|
||||||
|
std::array<DxvkBufferSlice, MaxNumXfbBuffers> buffers;
|
||||||
|
std::array<DxvkBufferSlice, MaxNumXfbBuffers> counters;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
struct DxvkShaderStage {
|
struct DxvkShaderStage {
|
||||||
@ -125,6 +133,7 @@ namespace dxvk {
|
|||||||
DxvkViewportState vp;
|
DxvkViewportState vp;
|
||||||
DxvkDynamicDepthState ds;
|
DxvkDynamicDepthState ds;
|
||||||
DxvkOutputMergerState om;
|
DxvkOutputMergerState om;
|
||||||
|
DxvkXfbState xfb;
|
||||||
|
|
||||||
DxvkGraphicsPipelineState gp;
|
DxvkGraphicsPipelineState gp;
|
||||||
DxvkComputePipelineState cp;
|
DxvkComputePipelineState cp;
|
||||||
|
@ -8,7 +8,8 @@ namespace dxvk {
|
|||||||
MaxNumRenderTargets = 8,
|
MaxNumRenderTargets = 8,
|
||||||
MaxNumVertexAttributes = 32,
|
MaxNumVertexAttributes = 32,
|
||||||
MaxNumVertexBindings = 32,
|
MaxNumVertexBindings = 32,
|
||||||
MaxNumOutputStreams = 4,
|
MaxNumXfbBuffers = 4,
|
||||||
|
MaxNumXfbStreams = 4,
|
||||||
MaxNumViewports = 16,
|
MaxNumViewports = 16,
|
||||||
MaxNumResourceSlots = 1216,
|
MaxNumResourceSlots = 1216,
|
||||||
MaxNumActiveBindings = 128,
|
MaxNumActiveBindings = 128,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user