Commit a3be0c1d authored by Chuck Walbourn's avatar Chuck Walbourn
Browse files

Code review for XDK samples

parent 9e825695
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -41,6 +41,10 @@

#include <xaudio2.h>

#include <apu.h>
#include <shapexmacontext.h>
#include <xma2defs.h>

namespace DX
{
    // Helper class for COM exceptions
+8 −0
Original line number Diff line number Diff line
@@ -147,6 +147,14 @@ Sample::Sample()
    std::fill_n(m_esramRatios, _countof(m_esramRatios), 1.0f);
}

Sample::~Sample()
{
    if (m_deviceResources)
    {
        m_deviceResources->WaitForGpu();
    }
}

// Initialize the Direct3D resources required to run.
void Sample::Initialize(IUnknown* window)
{
+1 −0
Original line number Diff line number Diff line
@@ -47,6 +47,7 @@ class Sample
{
public:
    Sample();
    ~Sample();

    // Initialization and management
    void Initialize(IUnknown* window);
+4 −20
Original line number Diff line number Diff line
@@ -22,26 +22,10 @@ namespace ATG

        auto shaderBlob = DX::ReadData(s_shaderFilename);

        // Create root signature.
        D3D12_ROOT_SIGNATURE_FLAGS rootSignatureFlags =
            D3D12_ROOT_SIGNATURE_FLAG_DENY_VERTEX_SHADER_ROOT_ACCESS |
            D3D12_ROOT_SIGNATURE_FLAG_DENY_DOMAIN_SHADER_ROOT_ACCESS |
            D3D12_ROOT_SIGNATURE_FLAG_DENY_GEOMETRY_SHADER_ROOT_ACCESS |
            D3D12_ROOT_SIGNATURE_FLAG_DENY_HULL_SHADER_ROOT_ACCESS | 
            D3D12_ROOT_SIGNATURE_FLAG_DENY_PIXEL_SHADER_ROOT_ACCESS;

        CD3DX12_DESCRIPTOR_RANGE textureUAVs(D3D12_DESCRIPTOR_RANGE_TYPE_UAV, 1, 0);

        CD3DX12_ROOT_PARAMETER rootParameters[RootParameterIndex::RootParameterCount] = {};
        rootParameters[RootParameterIndex::ConstantBuffer].InitAsConstantBufferView(0);
        rootParameters[RootParameterIndex::TextureUAV].InitAsDescriptorTable(1, &textureUAVs);

        CD3DX12_ROOT_SIGNATURE_DESC rsDesc = {};
        rsDesc.Init(_countof(rootParameters), rootParameters, 0, nullptr, rootSignatureFlags);

        ComPtr<ID3DBlob> rsBlob, errorBlob;
        DX::ThrowIfFailed(D3D12SerializeRootSignature(&rsDesc, D3D_ROOT_SIGNATURE_VERSION_1, &rsBlob, &errorBlob));
        DX::ThrowIfFailed(device->CreateRootSignature(0, rsBlob->GetBufferPointer(), rsBlob->GetBufferSize(), IID_GRAPHICS_PPV_ARGS(m_rootSignature.GetAddressOf())));
        // Xbox One best practice is to use HLSL-based root signatures to support shader precompilation.
        DX::ThrowIfFailed(
            device->CreateRootSignature(0, shaderBlob.data(), shaderBlob.size(),
                IID_GRAPHICS_PPV_ARGS(m_rootSignature.ReleaseAndGetAddressOf())));

        SetDebugObjectName(m_rootSignature.Get(), L"EsramVisualizeEffect");
        
+9 −15
Original line number Diff line number Diff line
@@ -140,7 +140,8 @@ void Sample::Render()
        m_primitiveBatch->Begin(commandList);
        m_primitiveBatch->DrawTriangle(c_vertexData[0], c_vertexData[1], c_vertexData[2]);
        m_primitiveBatch->End();
        commandList->RSSetViewports(1, &m_deviceResources->GetScreenViewport());
        auto vp = m_deviceResources->GetScreenViewport();
        commandList->RSSetViewports(1, &vp);
        PIXEndEvent(commandList);
    };

@@ -231,23 +232,16 @@ void Sample::CreateDeviceDependentResources()

    m_graphicsMemory = std::make_unique<GraphicsMemory>(device);

    // Create an empty root signature.
    {
        CD3DX12_ROOT_SIGNATURE_DESC rootSignatureDesc;
        rootSignatureDesc.Init(0, nullptr, 0, nullptr, D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT);
    // Create root signature.
    auto vertexShaderBlob = DX::ReadData(L"VertexShader.cso");

    // Xbox One best practice is to use HLSL-based root signatures to support shader precompilation.

        ComPtr<ID3DBlob> signature;
        ComPtr<ID3DBlob> error;
        DX::ThrowIfFailed(
            D3D12SerializeRootSignature(&rootSignatureDesc, D3D_ROOT_SIGNATURE_VERSION_1, &signature, &error));
    DX::ThrowIfFailed(
            device->CreateRootSignature(0, signature->GetBufferPointer(), signature->GetBufferSize(),
        device->CreateRootSignature(0, vertexShaderBlob.data(), vertexShaderBlob.size(),
            IID_GRAPHICS_PPV_ARGS(m_rootSignature.ReleaseAndGetAddressOf())));
    }

    // Create the pipeline state, which includes loading shaders.
    auto vertexShaderBlob = DX::ReadData(L"VertexShader.cso");

    // Describe and create the graphics pipeline state object (PSO).
    D3D12_GRAPHICS_PIPELINE_STATE_DESC psoDesc = {};
    psoDesc.InputLayout = VertexPositionColor::InputLayout;
Loading