(D3D11) Cleanup some inline functions

This commit is contained in:
twinaphex 2022-04-23 09:06:40 +02:00
parent d0ef0eccbf
commit 1887aee7c4
4 changed files with 70 additions and 108 deletions

View File

@ -239,15 +239,6 @@ static INLINE void D3D11SetPShaderResources(
device_context, start_slot, num_views,
shader_resource_views);
}
static INLINE void D3D11SetPShaderSamplers(
D3D11DeviceContext device_context,
UINT start_slot,
UINT num_samplers,
ID3D11SamplerState* const* samplers)
{
device_context->lpVtbl->PSSetSamplers(
device_context, start_slot, num_samplers, samplers);
}
static INLINE void D3D11DrawIndexed(
D3D11DeviceContext device_context,
@ -280,32 +271,6 @@ D3D11Unmap(D3D11DeviceContext device_context, D3D11Resource resource, UINT subre
device_context->lpVtbl->Unmap(device_context, resource, subresource);
}
static INLINE void D3D11SetPShaderConstantBuffers(
D3D11DeviceContext device_context,
UINT start_slot,
UINT num_buffers,
const D3D11Buffer* constant_buffers)
{
device_context->lpVtbl->PSSetConstantBuffers(
device_context, start_slot, num_buffers, constant_buffers);
}
static INLINE void D3D11SetVertexBuffers(
D3D11DeviceContext device_context,
UINT start_slot,
UINT num_buffers,
const D3D11Buffer* vertex_buffers,
UINT* strides,
UINT* offsets)
{
device_context->lpVtbl->IASetVertexBuffers(
device_context, start_slot, num_buffers, vertex_buffers, strides, offsets);
}
static INLINE void D3D11SetIndexBuffer(
D3D11DeviceContext device_context, D3D11Buffer index_buffer, DXGI_FORMAT format, UINT offset)
{
device_context->lpVtbl->IASetIndexBuffer(device_context, index_buffer, format, offset);
}
static INLINE void D3D11DrawIndexedInstanced(
D3D11DeviceContext device_context,
UINT index_count_per_instance,
@ -353,14 +318,7 @@ static INLINE void D3D11SetVShaderResources(
device_context->lpVtbl->VSSetShaderResources(
device_context, start_slot, num_views, shader_resource_views);
}
static INLINE void D3D11SetVShaderSamplers(
D3D11DeviceContext device_context,
UINT start_slot,
UINT num_samplers,
D3D11SamplerState* const samplers)
{
device_context->lpVtbl->VSSetSamplers(device_context, start_slot, num_samplers, samplers);
}
static INLINE void D3D11Begin(D3D11DeviceContext device_context, D3D11Asynchronous async)
{
device_context->lpVtbl->Begin(device_context, async);
@ -488,16 +446,13 @@ D3D11SetRasterizerState(D3D11DeviceContext device_context, D3D11RasterizerState
{
device_context->lpVtbl->RSSetState(device_context, rasterizer_state);
}
static INLINE void
D3D11SetViewports(D3D11DeviceContext device_context, UINT num_viewports, D3D11_VIEWPORT* viewports)
{
device_context->lpVtbl->RSSetViewports(device_context, num_viewports, viewports);
}
static INLINE void
D3D11SetScissorRects(D3D11DeviceContext device_context, UINT num_rects, D3D11_RECT* rects)
{
device_context->lpVtbl->RSSetScissorRects(device_context, num_rects, rects);
}
static INLINE void D3D11CopySubresourceRegion(
D3D11DeviceContext device_context,
D3D11Resource dst_resource,
@ -599,11 +554,7 @@ static INLINE void D3D11ResolveSubresource(
device_context->lpVtbl->ResolveSubresource(
device_context, dst_resource, dst_subresource, src_resource, src_subresource, format);
}
static INLINE void D3D11ExecuteCommandList(
D3D11DeviceContext device_context, D3D11CommandList command_list, BOOL restore_context_state)
{
device_context->lpVtbl->ExecuteCommandList(device_context, command_list, restore_context_state);
}
static INLINE void D3D11HSSetShaderResources(
D3D11DeviceContext device_context,
UINT start_slot,
@ -693,6 +644,7 @@ static INLINE void D3D11SetCShaderUnorderedAccessViews(
device_context->lpVtbl->CSSetUnorderedAccessViews(
device_context, start_slot, num_uavs, unordered_access_views, uavinitial_counts);
}
static INLINE void D3D11SetCShader(
D3D11DeviceContext device_context,
D3D11ComputeShader compute_shader,
@ -2136,10 +2088,7 @@ static INLINE HRESULT D3D11SetSwapChain(D3D11Debug debug, IDXGISwapChain* swap_c
{
return debug->lpVtbl->SetSwapChain(debug, (IDXGISwapChain*)swap_chain);
}
static INLINE HRESULT D3D11GetSwapChain(D3D11Debug debug, IDXGISwapChain** swap_chain)
{
return debug->lpVtbl->GetSwapChain(debug, (IDXGISwapChain**)swap_chain);
}
static INLINE HRESULT D3D11ValidateContext(D3D11Debug debug, D3D11DeviceContext context)
{
return debug->lpVtbl->ValidateContext(debug, context);
@ -2344,12 +2293,6 @@ static INLINE BOOL D3D11GetMuteDebugOutput(D3D11InfoQueue info_queue)
/* end of auto-generated */
static INLINE HRESULT
DXGIGetSwapChainBufferD3D11(DXGISwapChain swap_chain, UINT buffer, D3D11Texture2D* out)
{
return swap_chain->lpVtbl->GetBuffer(swap_chain, buffer, uuidof(ID3D11Texture2D), (void**)out);
}
static INLINE HRESULT D3D11MapTexture2D(
D3D11DeviceContext device_context,
D3D11Texture2D texture,

View File

@ -275,25 +275,26 @@ static void d3d11_render_overlay(void *data)
return;
if (d3d11->overlays.fullscreen)
D3D11SetViewports(d3d11->context, 1, &d3d11->viewport);
d3d11->context->lpVtbl->RSSetViewports(d3d11->context, 1, &d3d11->viewport);
else
D3D11SetViewports(d3d11->context, 1, &d3d11->frame.viewport);
d3d11->context->lpVtbl->RSSetViewports(d3d11->context, 1, &d3d11->frame.viewport);
D3D11SetBlendState(d3d11->context, d3d11->blend_enable, NULL, D3D11_DEFAULT_SAMPLE_MASK);
{
UINT stride = sizeof(d3d11_sprite_t);
UINT offset = 0;
D3D11SetVertexBuffers(d3d11->context, 0, 1,
&d3d11->overlays.vbo, &stride, &offset);
d3d11->context->lpVtbl->IASetVertexBuffers(
d3d11->context, 0, 1, &d3d11->overlays.vbo, &stride, &offset);
}
{
UINT stride = sizeof(d3d11_sprite_t);
UINT offset = 0;
D3D11SetVertexBuffers(d3d11->context, 0, 1, &d3d11->frame.vbo,
&stride, &offset);
d3d11->context->lpVtbl->IASetVertexBuffers(
d3d11->context, 0, 1, &d3d11->frame.vbo, &stride, &offset);
}
D3D11SetPShaderSamplers(
d3d11->context, 0, 1, &d3d11->samplers[RARCH_FILTER_UNSPEC][RARCH_WRAP_DEFAULT]);
d3d11->context->lpVtbl->PSSetSamplers(
d3d11->context, 0, 1,
&d3d11->samplers[RARCH_FILTER_UNSPEC][RARCH_WRAP_DEFAULT]);
for (i = 0; i < (unsigned)d3d11->overlays.count; i++)
{
@ -1886,7 +1887,8 @@ static bool d3d11_gfx_frame(
{
D3D11Texture2D back_buffer;
DXGIGetSwapChainBufferD3D11(d3d11->swapChain, 0, &back_buffer);
d3d11->swapChain->lpVtbl->GetBuffer(d3d11->swapChain, 0,
uuidof(ID3D11Texture2D), (void**)&back_buffer);
D3D11CreateTexture2DRenderTargetView(d3d11->device, back_buffer, NULL, &rtv);
Release(back_buffer);
}
@ -1985,7 +1987,8 @@ static bool d3d11_gfx_frame(
{
UINT stride = sizeof(d3d11_vertex_t);
UINT offset = 0;
D3D11SetVertexBuffers(context, 0, 1, &d3d11->frame.vbo, &stride, &offset);
d3d11->context->lpVtbl->IASetVertexBuffers(
d3d11->context, 0, 1, &d3d11->frame.vbo, &stride, &offset);
}
texture = d3d11->frame.texture;
@ -2049,7 +2052,8 @@ static bool d3d11_gfx_frame(
D3D11SetVShaderConstantBuffers(context, buffer_sem->binding, 1, &buffer);
if (buffer_sem->stage_mask & SLANG_STAGE_FRAGMENT_MASK)
D3D11SetPShaderConstantBuffers(context, buffer_sem->binding, 1, &buffer);
context->lpVtbl->PSSetConstantBuffers(
context, buffer_sem->binding, 1, &buffer);
}
}
@ -2072,7 +2076,8 @@ static bool d3d11_gfx_frame(
}
D3D11SetPShaderResources(context, 0, SLANG_NUM_BINDINGS, textures);
D3D11SetPShaderSamplers(context, 0, SLANG_NUM_BINDINGS, samplers);
context->lpVtbl->PSSetSamplers(
context, 0, SLANG_NUM_BINDINGS, samplers);
}
if (!d3d11->pass[i].rt.handle)
@ -2082,7 +2087,7 @@ static bool d3d11_gfx_frame(
}
D3D11SetRenderTargets(context, 1, &d3d11->pass[i].rt.rt_view, NULL);
D3D11SetViewports(context, 1, &d3d11->pass[i].viewport);
context->lpVtbl->RSSetViewports(context, 1, &d3d11->pass[i].viewport);
D3D11Draw(context, 4, 0);
texture = &d3d11->pass[i].rt;
@ -2103,7 +2108,7 @@ static bool d3d11_gfx_frame(
D3D11ClearRenderTargetView(context, rtv, d3d11->clearcolor);
}
D3D11SetViewports(context, 1, &d3d11->frame.viewport);
context->lpVtbl->RSSetViewports(context, 1, &d3d11->frame.viewport);
if (texture)
{
@ -2115,8 +2120,9 @@ static bool d3d11_gfx_frame(
context->lpVtbl->GSSetShader(context, shader->gs, NULL, 0);
}
D3D11SetPShaderResources(context, 0, 1, &texture->view);
D3D11SetPShaderSamplers(
context, 0, 1, &d3d11->samplers[RARCH_FILTER_UNSPEC][RARCH_WRAP_DEFAULT]);
context->lpVtbl->PSSetSamplers(
context, 0, 1,
&d3d11->samplers[RARCH_FILTER_UNSPEC][RARCH_WRAP_DEFAULT]);
D3D11SetVShaderConstantBuffers(context, 0, 1, &d3d11->frame.ubo);
}
@ -2129,7 +2135,7 @@ static bool d3d11_gfx_frame(
if (d3d11->menu.enabled && d3d11->menu.texture.handle)
{
if (d3d11->menu.fullscreen)
D3D11SetViewports(context, 1, &d3d11->viewport);
context->lpVtbl->RSSetViewports(context, 1, &d3d11->viewport);
{
d3d11_shader_t *shader = &d3d11->shaders[VIDEO_SHADER_STOCK_BLEND];
@ -2141,19 +2147,22 @@ static bool d3d11_gfx_frame(
{
UINT stride = sizeof(d3d11_vertex_t);
UINT offset = 0;
D3D11SetVertexBuffers(context, 0, 1, &d3d11->menu.vbo, &stride, &offset);
d3d11->context->lpVtbl->IASetVertexBuffers(
d3d11->context, 0, 1, &d3d11->menu.vbo, &stride, &offset);
}
D3D11SetVShaderConstantBuffers(context, 0, 1, &d3d11->ubo);
{
d3d11_texture_t *texture = (d3d11_texture_t*)&d3d11->menu.texture;
D3D11SetPShaderResources(d3d11->context, 0, 1, &texture->view);
D3D11SetPShaderSamplers(d3d11->context, 0, 1, (D3D11SamplerState*)&texture->sampler);
d3d11->context->lpVtbl->PSSetSamplers(
d3d11->context, 0, 1,
(D3D11SamplerState*)&texture->sampler);
}
D3D11Draw(context, 4, 0);
}
#endif
D3D11SetViewports(context, 1, &d3d11->viewport);
context->lpVtbl->RSSetViewports(context, 1, &d3d11->viewport);
{
d3d11_shader_t *shader = &d3d11->sprites.shader;
context->lpVtbl->IASetInputLayout(context, shader->layout);
@ -2163,12 +2172,13 @@ static bool d3d11_gfx_frame(
}
D3D11SetPrimitiveTopology(context, D3D11_PRIMITIVE_TOPOLOGY_POINTLIST);
D3D11SetVShaderConstantBuffers(context, 0, 1, &d3d11->ubo);
D3D11SetPShaderConstantBuffers(context, 0, 1, &d3d11->ubo);
context->lpVtbl->PSSetConstantBuffers(
context, 0, 1, &d3d11->ubo);
{
UINT stride = sizeof(d3d11_sprite_t);
UINT offset = 0;
D3D11SetVertexBuffers(context, 0, 1,
&d3d11->sprites.vbo, &stride, &offset);
context->lpVtbl->IASetVertexBuffers(
context, 0, 1, &d3d11->sprites.vbo, &stride, &offset);
}
d3d11->sprites.enabled = true;
@ -2182,12 +2192,12 @@ static bool d3d11_gfx_frame(
if (d3d11->menu.enabled)
#endif
{
D3D11SetViewports(context, 1, &d3d11->viewport);
context->lpVtbl->RSSetViewports(context, 1, &d3d11->viewport);
{
UINT stride = sizeof(d3d11_sprite_t);
UINT offset = 0;
D3D11SetVertexBuffers(context, 0, 1,
&d3d11->sprites.vbo, &stride, &offset);
context->lpVtbl->IASetVertexBuffers(
context, 0, 1, &d3d11->sprites.vbo, &stride, &offset);
}
}
#endif
@ -2201,13 +2211,13 @@ static bool d3d11_gfx_frame(
{
if (osd_params)
{
D3D11SetViewports(context, 1, &d3d11->viewport);
context->lpVtbl->RSSetViewports(context, 1, &d3d11->viewport);
D3D11SetBlendState(d3d11->context, d3d11->blend_enable, NULL, D3D11_DEFAULT_SAMPLE_MASK);
{
UINT stride = sizeof(d3d11_sprite_t);
UINT offset = 0;
D3D11SetVertexBuffers(context, 0, 1,
&d3d11->sprites.vbo, &stride, &offset);
context->lpVtbl->IASetVertexBuffers(
context, 0, 1, &d3d11->sprites.vbo, &stride, &offset);
}
font_driver_render_msg(d3d11,
stat_text,
@ -2223,7 +2233,7 @@ static bool d3d11_gfx_frame(
#ifdef HAVE_GFX_WIDGETS
if (widgets_active)
{
D3D11SetViewports(context, 1, &d3d11->viewport);
context->lpVtbl->RSSetViewports(context, 1, &d3d11->viewport);
gfx_widgets_frame(video_info);
}
#endif
@ -2232,10 +2242,10 @@ static bool d3d11_gfx_frame(
{
UINT stride = sizeof(d3d11_sprite_t);
UINT offset = 0;
D3D11SetViewports(context, 1, &d3d11->viewport);
context->lpVtbl->RSSetViewports(context, 1, &d3d11->viewport);
D3D11SetBlendState(d3d11->context, d3d11->blend_enable, NULL, D3D11_DEFAULT_SAMPLE_MASK);
D3D11SetVertexBuffers(context, 0, 1,
&d3d11->sprites.vbo, &stride, &offset);
context->lpVtbl->IASetVertexBuffers(
context, 0, 1, &d3d11->sprites.vbo, &stride, &offset);
font_driver_render_msg(d3d11, msg, NULL, NULL);
}
d3d11->sprites.enabled = false;
@ -2252,8 +2262,7 @@ static bool d3d11_gfx_frame(
D3D11SetRenderTargets(context, 1, &rtv, NULL);
D3D11ClearRenderTargetView(context, rtv,
d3d11->clearcolor);
D3D11SetViewports(context, 1,
&d3d11->viewport);
context->lpVtbl->RSSetViewports(context, 1, &d3d11->viewport);
D3D11SetScissorRects(context, 1,
&d3d11->scissor);
@ -2268,14 +2277,16 @@ static bool d3d11_gfx_frame(
&d3d11->hdr.ubo);
D3D11SetPShaderResources(context, 0, 1,
&d3d11->back_buffer.view);
D3D11SetPShaderSamplers(context, 0, 1,
context->lpVtbl->PSSetSamplers(
context, 0, 1,
&d3d11->samplers[RARCH_FILTER_UNSPEC][RARCH_WRAP_DEFAULT]);
D3D11SetPShaderConstantBuffers(context, 0, 1, &d3d11->hdr.ubo);
context->lpVtbl->PSSetConstantBuffers(
context, 0, 1, &d3d11->hdr.ubo);
{
UINT stride = sizeof(d3d11_vertex_t);
UINT offset = 0;
D3D11SetVertexBuffers(context, 0, 1, &d3d11->frame.vbo,
&stride, &offset);
context->lpVtbl->IASetVertexBuffers(
context, 0, 1, &d3d11->frame.vbo, &stride, &offset);
}
D3D11SetRasterizerState(context, d3d11->scissor_disabled);

View File

@ -78,8 +78,9 @@ static void gfx_display_d3d11_draw(gfx_display_ctx_draw_t *draw,
{
UINT stride = sizeof(d3d11_sprite_t);
UINT offset = 0;
D3D11SetVertexBuffers(d3d11->context, 0, 1,
&d3d11->sprites.vbo, &stride, &offset);
d3d11->context->lpVtbl->IASetVertexBuffers(
d3d11->context, 0, 1,
&d3d11->sprites.vbo, &stride, &offset);
}
D3D11SetPrimitiveTopology(d3d11->context, D3D11_PRIMITIVE_TOPOLOGY_POINTLIST);
return;
@ -174,7 +175,8 @@ static void gfx_display_d3d11_draw(gfx_display_ctx_draw_t *draw,
{
d3d11_texture_t *texture = (d3d11_texture_t*)draw->texture;
D3D11SetPShaderResources(d3d11->context, 0, 1, &texture->view);
D3D11SetPShaderSamplers(d3d11->context, 0, 1, (D3D11SamplerState*)&texture->sampler);
d3d11->context->lpVtbl->PSSetSamplers(
d3d11->context, 0, 1, (D3D11SamplerState*)&texture->sampler);
}
D3D11Draw(d3d11->context, vertex_count, d3d11->sprites.offset);
@ -222,7 +224,9 @@ static void gfx_display_d3d11_draw_pipeline(gfx_display_ctx_draw_t *draw,
{
UINT stride = 2 * sizeof(float);
UINT offset = 0;
D3D11SetVertexBuffers(d3d11->context, 0, 1, &d3d11->menu_pipeline_vbo, &stride, &offset);
d3d11->context->lpVtbl->IASetVertexBuffers(
d3d11->context, 0, 1,
&d3d11->menu_pipeline_vbo, &stride, &offset);
}
draw->coords->vertices = ca->coords.vertices;
D3D11SetBlendState(d3d11->context, d3d11->blend_pipeline, NULL, D3D11_DEFAULT_SAMPLE_MASK);
@ -236,7 +240,9 @@ static void gfx_display_d3d11_draw_pipeline(gfx_display_ctx_draw_t *draw,
{
UINT stride = sizeof(d3d11_vertex_t);
UINT offset = 0;
D3D11SetVertexBuffers(d3d11->context, 0, 1, &d3d11->frame.vbo, &stride, &offset);
d3d11->context->lpVtbl->IASetVertexBuffers(
d3d11->context, 0, 1,
&d3d11->frame.vbo, &stride, &offset);
}
draw->coords->vertices = 4;
break;

View File

@ -215,7 +215,9 @@ static void d3d11_font_render_line(
{
d3d11_texture_t *texture = (d3d11_texture_t*)&font->texture;
D3D11SetPShaderResources(d3d11->context, 0, 1, &texture->view);
D3D11SetPShaderSamplers(d3d11->context, 0, 1, (D3D11SamplerState*)&texture->sampler);
d3d11->context->lpVtbl->PSSetSamplers(
d3d11->context, 0, 1,
(D3D11SamplerState*)&texture->sampler);
}
D3D11SetBlendState(d3d11->context, d3d11->blend_enable, NULL, D3D11_DEFAULT_SAMPLE_MASK);