| 564 | } |
| 565 | |
| 566 | bool GPUDeviceDX12::Init() |
| 567 | { |
| 568 | #if PLATFORM_XBOX_SCARLETT || PLATFORM_XBOX_ONE |
| 569 | // Create DirectX device |
| 570 | D3D12XBOX_CREATE_DEVICE_PARAMETERS params = {}; |
| 571 | params.Version = D3D12_SDK_VERSION; |
| 572 | #if GPU_ENABLE_DIAGNOSTICS |
| 573 | params.ProcessDebugFlags = D3D12_PROCESS_DEBUG_FLAG_DEBUG_LAYER_ENABLED; |
| 574 | #elif !BUILD_RELEASE |
| 575 | params.ProcessDebugFlags = D3D12XBOX_PROCESS_DEBUG_FLAG_INSTRUMENTED; |
| 576 | #endif |
| 577 | params.GraphicsCommandQueueRingSizeBytes = static_cast<UINT>(D3D12XBOX_DEFAULT_SIZE_BYTES); |
| 578 | params.GraphicsScratchMemorySizeBytes = static_cast<UINT>(D3D12XBOX_DEFAULT_SIZE_BYTES); |
| 579 | params.ComputeScratchMemorySizeBytes = static_cast<UINT>(D3D12XBOX_DEFAULT_SIZE_BYTES); |
| 580 | #if PLATFORM_XBOX_SCARLETT |
| 581 | params.DisableDXR = TRUE; |
| 582 | #endif |
| 583 | VALIDATE_DIRECTX_CALL(D3D12XboxCreateDevice(nullptr, ¶ms, IID_GRAPHICS_PPV_ARGS(&_device))); |
| 584 | |
| 585 | // Setup adapter |
| 586 | D3D12XBOX_GPU_HARDWARE_CONFIGURATION hwConfig = {}; |
| 587 | _device->GetGpuHardwareConfigurationX(&hwConfig); |
| 588 | const wchar_t* hwVer = L"Unknown"; |
| 589 | switch (hwConfig.HardwareVersion) |
| 590 | { |
| 591 | case D3D12XBOX_HARDWARE_VERSION_XBOX_ONE: |
| 592 | hwVer = L"Xbox One"; |
| 593 | break; |
| 594 | case D3D12XBOX_HARDWARE_VERSION_XBOX_ONE_S: |
| 595 | hwVer = L"Xbox One S"; |
| 596 | break; |
| 597 | case D3D12XBOX_HARDWARE_VERSION_XBOX_ONE_X: |
| 598 | hwVer = L"Xbox One X"; |
| 599 | break; |
| 600 | case D3D12XBOX_HARDWARE_VERSION_XBOX_ONE_X_DEVKIT: |
| 601 | hwVer = L"Xbox One X (DevKit)"; |
| 602 | break; |
| 603 | #ifdef _GAMING_XBOX_SCARLETT |
| 604 | case D3D12XBOX_HARDWARE_VERSION_XBOX_SCARLETT_LOCKHART: |
| 605 | hwVer = L"Scarlett Lockhart"; |
| 606 | break; |
| 607 | case D3D12XBOX_HARDWARE_VERSION_XBOX_SCARLETT_ANACONDA: |
| 608 | hwVer = L"Scarlett Anaconda"; |
| 609 | break; |
| 610 | case D3D12XBOX_HARDWARE_VERSION_XBOX_SCARLETT_DEVKIT: |
| 611 | hwVer = L"Scarlett Dev Kit"; |
| 612 | break; |
| 613 | #endif |
| 614 | } |
| 615 | LOG(Info, "Hardware Version: {0}", hwVer); |
| 616 | updateFrameEvents(); |
| 617 | |
| 618 | // Setup display output |
| 619 | auto& videoOutput = VideoOutputs.AddOne(); |
| 620 | videoOutput.Name = hwVer; |
| 621 | ComPtr<IDXGIDevice1> dxgiDevice; |
| 622 | VALIDATE_DIRECTX_CALL(_device->QueryInterface(IID_GRAPHICS_PPV_ARGS(&dxgiDevice))); |
| 623 | ComPtr<IDXGIAdapter> dxgiAdapter; |
no test coverage detected