[D3D12] Adaptive quad tessellation, remove d3d12_tessellation_adaptive cvar

This commit is contained in:
Triang3l
2020-04-09 00:00:11 +03:00
parent c51cba080b
commit acb3778819
10 changed files with 523 additions and 51 deletions

View File

@@ -50,6 +50,7 @@ namespace gpu {
namespace d3d12 {
// Generated with `xb buildhlsl`.
#include "xenia/gpu/d3d12/shaders/dxbc/adaptive_quad_hs.h"
#include "xenia/gpu/d3d12/shaders/dxbc/adaptive_triangle_hs.h"
#include "xenia/gpu/d3d12/shaders/dxbc/continuous_quad_hs.h"
#include "xenia/gpu/d3d12/shaders/dxbc/continuous_triangle_hs.h"
@@ -761,7 +762,7 @@ Shader::HostVertexShaderType PipelineCache::GetHostVertexShaderTypeIfValid()
break;
case PrimitiveType::kQuadPatch:
if (tessellation_mode == xenos::TessellationMode::kAdaptive) {
// - Viva Pinata - something on the start screen.
// - Viva Pinata - garden ground.
return Shader::HostVertexShaderType::kQuadDomainAdaptive;
}
break;
@@ -1493,6 +1494,10 @@ ID3D12PipelineState* PipelineCache::CreateD3D12PipelineState(
state_desc.HS.pShaderBytecode = adaptive_triangle_hs;
state_desc.HS.BytecodeLength = sizeof(adaptive_triangle_hs);
break;
case Shader::HostVertexShaderType::kQuadDomainAdaptive:
state_desc.HS.pShaderBytecode = adaptive_quad_hs;
state_desc.HS.BytecodeLength = sizeof(adaptive_quad_hs);
break;
default:
assert_unhandled_case(host_vertex_shader_type);
return nullptr;