From 1887aee7c4a111808ffda11890bd5e2e259400ee Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sat, 23 Apr 2022 09:06:40 +0200 Subject: [PATCH] (D3D11) Cleanup some inline functions --- gfx/common/d3d11_common.h | 69 ++----------------- gfx/drivers/d3d11.c | 89 ++++++++++++++----------- gfx/drivers_display/gfx_display_d3d11.c | 16 +++-- gfx/drivers_font/d3d11_font.c | 4 +- 4 files changed, 70 insertions(+), 108 deletions(-) diff --git a/gfx/common/d3d11_common.h b/gfx/common/d3d11_common.h index 2477985e5b..fd71ce5696 100644 --- a/gfx/common/d3d11_common.h +++ b/gfx/common/d3d11_common.h @@ -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, diff --git a/gfx/drivers/d3d11.c b/gfx/drivers/d3d11.c index e98fddbc3b..eb25622ded 100644 --- a/gfx/drivers/d3d11.c +++ b/gfx/drivers/d3d11.c @@ -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); diff --git a/gfx/drivers_display/gfx_display_d3d11.c b/gfx/drivers_display/gfx_display_d3d11.c index 0acb8e9139..c7496d5eec 100644 --- a/gfx/drivers_display/gfx_display_d3d11.c +++ b/gfx/drivers_display/gfx_display_d3d11.c @@ -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; diff --git a/gfx/drivers_font/d3d11_font.c b/gfx/drivers_font/d3d11_font.c index d8d18ab91b..77c2d2cde4 100644 --- a/gfx/drivers_font/d3d11_font.c +++ b/gfx/drivers_font/d3d11_font.c @@ -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);