mirror of
https://github.com/xenia-project/xenia.git
synced 2025-12-06 07:12:03 +01:00
[D3D12] Changed default resource state based on GPU Validation
- This prevents GBV from spamming warnings
This commit is contained in:
parent
179591c8bc
commit
7566871220
|
|
@ -1199,7 +1199,7 @@ bool D3D12CommandProcessor::SetupContext() {
|
||||||
ui::d3d12::util::FillBufferResourceDesc(
|
ui::d3d12::util::FillBufferResourceDesc(
|
||||||
gamma_ramp_buffer_desc, (256 + 128 * 3) * 4, D3D12_RESOURCE_FLAG_NONE);
|
gamma_ramp_buffer_desc, (256 + 128 * 3) * 4, D3D12_RESOURCE_FLAG_NONE);
|
||||||
// The first action will be uploading.
|
// The first action will be uploading.
|
||||||
gamma_ramp_buffer_state_ = D3D12_RESOURCE_STATE_COPY_DEST;
|
gamma_ramp_buffer_state_ = D3D12_RESOURCE_STATE_COMMON;
|
||||||
if (FAILED(device->CreateCommittedResource(
|
if (FAILED(device->CreateCommittedResource(
|
||||||
&ui::d3d12::util::kHeapPropertiesDefault, heap_flag_create_not_zeroed,
|
&ui::d3d12::util::kHeapPropertiesDefault, heap_flag_create_not_zeroed,
|
||||||
&gamma_ramp_buffer_desc, gamma_ramp_buffer_state_, nullptr,
|
&gamma_ramp_buffer_desc, gamma_ramp_buffer_state_, nullptr,
|
||||||
|
|
|
||||||
|
|
@ -100,7 +100,7 @@ bool D3D12PrimitiveProcessor::InitializeBuiltinIndexBuffer(
|
||||||
if (FAILED(device->CreateCommittedResource(
|
if (FAILED(device->CreateCommittedResource(
|
||||||
&ui::d3d12::util::kHeapPropertiesDefault,
|
&ui::d3d12::util::kHeapPropertiesDefault,
|
||||||
provider.GetHeapFlagCreateNotZeroed(), &resource_desc,
|
provider.GetHeapFlagCreateNotZeroed(), &resource_desc,
|
||||||
D3D12_RESOURCE_STATE_COPY_DEST, nullptr,
|
D3D12_RESOURCE_STATE_COMMON, nullptr,
|
||||||
IID_PPV_ARGS(&draw_resource)))) {
|
IID_PPV_ARGS(&draw_resource)))) {
|
||||||
XELOGE(
|
XELOGE(
|
||||||
"D3D12 primitive processor: Failed to create the built-in index "
|
"D3D12 primitive processor: Failed to create the built-in index "
|
||||||
|
|
|
||||||
|
|
@ -263,7 +263,7 @@ bool D3D12RenderTargetCache::Initialize() {
|
||||||
D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS);
|
D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS);
|
||||||
// The first operation will likely be depth self-comparison with host render
|
// The first operation will likely be depth self-comparison with host render
|
||||||
// targets or drawing with ROV.
|
// targets or drawing with ROV.
|
||||||
edram_buffer_state_ = D3D12_RESOURCE_STATE_UNORDERED_ACCESS;
|
edram_buffer_state_ = D3D12_RESOURCE_STATE_COMMON;
|
||||||
// Creating zeroed for stable initial value with ROV (though on a real
|
// Creating zeroed for stable initial value with ROV (though on a real
|
||||||
// console it has to be cleared anyway probably) and not to leak irrelevant
|
// console it has to be cleared anyway probably) and not to leak irrelevant
|
||||||
// data to trace dumps when not covered by host render targets entirely.
|
// data to trace dumps when not covered by host render targets entirely.
|
||||||
|
|
|
||||||
|
|
@ -1490,8 +1490,7 @@ bool D3D12TextureCache::LoadTextureDataFromResidentMemoryImpl(Texture& texture,
|
||||||
level_host_slice_size;
|
level_host_slice_size;
|
||||||
copy_buffer_size += level_host_slice_size * array_size;
|
copy_buffer_size += level_host_slice_size * array_size;
|
||||||
}
|
}
|
||||||
D3D12_RESOURCE_STATES copy_buffer_state =
|
D3D12_RESOURCE_STATES copy_buffer_state = D3D12_RESOURCE_STATE_COMMON;
|
||||||
D3D12_RESOURCE_STATE_UNORDERED_ACCESS;
|
|
||||||
ID3D12Resource* copy_buffer = command_processor_.RequestScratchGPUBuffer(
|
ID3D12Resource* copy_buffer = command_processor_.RequestScratchGPUBuffer(
|
||||||
uint32_t(copy_buffer_size), copy_buffer_state);
|
uint32_t(copy_buffer_size), copy_buffer_state);
|
||||||
if (copy_buffer == nullptr) {
|
if (copy_buffer == nullptr) {
|
||||||
|
|
@ -1687,7 +1686,7 @@ bool D3D12TextureCache::LoadTextureDataFromResidentMemoryImpl(Texture& texture,
|
||||||
}
|
}
|
||||||
std::memcpy(cbuffer_mapping, &load_constants, sizeof(load_constants));
|
std::memcpy(cbuffer_mapping, &load_constants, sizeof(load_constants));
|
||||||
command_list.D3DSetComputeRootConstantBufferView(0, cbuffer_gpu_address);
|
command_list.D3DSetComputeRootConstantBufferView(0, cbuffer_gpu_address);
|
||||||
assert_true(copy_buffer_state == D3D12_RESOURCE_STATE_UNORDERED_ACCESS);
|
assert_true(copy_buffer_state == D3D12_RESOURCE_STATE_COMMON);
|
||||||
command_processor_.SubmitBarriers();
|
command_processor_.SubmitBarriers();
|
||||||
command_list.D3DDispatch(group_count_x, group_count_y,
|
command_list.D3DDispatch(group_count_x, group_count_y,
|
||||||
load_constants.size_blocks[2]);
|
load_constants.size_blocks[2]);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue