vkd3d: Fix initial pipeline state.

d3d12_command_list_begin_command_buffer() was using the previous initial
pipeline state when called from d3d12_command_list_Reset().

Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Józef Kucia 2018-09-12 15:19:59 +02:00 committed by Alexandre Julliard
parent 605cb12eca
commit 9fe06825f8
2 changed files with 4 additions and 5 deletions

View File

@ -634,8 +634,6 @@ static HRESULT d3d12_command_list_begin_command_buffer(struct d3d12_command_list
list->is_recording = true;
list->is_valid = true;
ID3D12GraphicsCommandList_SetPipelineState(&list->ID3D12GraphicsCommandList_iface, list->pipeline_state);
return S_OK;
}
@ -1740,7 +1738,8 @@ static HRESULT STDMETHODCALLTYPE d3d12_command_list_Reset(ID3D12GraphicsCommandL
if (SUCCEEDED(hr = d3d12_command_allocator_allocate_command_buffer(allocator_impl, list)))
{
list->allocator = allocator_impl;
list->pipeline_state = initial_state;
ID3D12GraphicsCommandList_SetPipelineState(&list->ID3D12GraphicsCommandList_iface, initial_state);
}
memset(list->pipeline_bindings, 0, sizeof(list->pipeline_bindings));
@ -4239,7 +4238,6 @@ static HRESULT d3d12_command_list_init(struct d3d12_command_list *list, struct d
ID3D12Device_AddRef(&device->ID3D12Device_iface);
list->allocator = allocator;
list->pipeline_state = initial_pipeline_state;
memset(list->strides, 0, sizeof(list->strides));
list->primitive_topology = VK_PRIMITIVE_TOPOLOGY_POINT_LIST;
@ -4262,6 +4260,8 @@ static HRESULT d3d12_command_list_init(struct d3d12_command_list *list, struct d
return hr;
}
ID3D12GraphicsCommandList_SetPipelineState(&list->ID3D12GraphicsCommandList_iface, initial_pipeline_state);
return S_OK;
}

View File

@ -614,7 +614,6 @@ struct d3d12_command_list
LONG refcount;
D3D12_COMMAND_LIST_TYPE type;
ID3D12PipelineState *pipeline_state;
VkCommandBuffer vk_command_buffer;
bool is_recording;