[D3D12] Experimental incomplete custom sample positions, disabled by default

This commit is contained in:
Triang3l
2018-08-25 14:38:55 +03:00
parent 304544cc72
commit 66510b2e6f
8 changed files with 118 additions and 2 deletions

View File

@@ -46,6 +46,7 @@ class D3D12CommandProcessor : public CommandProcessor {
// Returns the drawing command list for the currently open frame.
ID3D12GraphicsCommandList* GetCurrentCommandList() const;
ID3D12GraphicsCommandList1* GetCurrentCommandList1() const;
void PushTransitionBarrier(
ID3D12Resource* resource, D3D12_RESOURCE_STATES old_state,
@@ -86,6 +87,10 @@ class D3D12CommandProcessor : public CommandProcessor {
void ReleaseScratchGPUBuffer(ID3D12Resource* buffer,
D3D12_RESOURCE_STATES new_state);
// Sets the current SSAA sample positions, needs to be done before setting
// render targets or copying to depth render targets.
void SetSamplePositions(MsaaSamples sample_positions);
// Sets the current pipeline state to a compute pipeline. This is for cache
// invalidation primarily. A frame must be open.
void SetComputePipeline(ID3D12PipelineState* pipeline);
@@ -233,6 +238,9 @@ class D3D12CommandProcessor : public CommandProcessor {
bool ff_blend_factor_update_needed_;
bool ff_stencil_ref_update_needed_;
// Current SSAA sample positions (to be updated by the render target cache).
MsaaSamples current_sample_positions_;
// Currently bound graphics or compute pipeline.
ID3D12PipelineState* current_pipeline_;
// Currently bound graphics root signature.