[vlc-commits] direct3d11: don't use our own pool when rendering to DXGI_FORMAT_UNKNOWN
Steve Lhomme
git at videolan.org
Mon Feb 25 14:52:23 CET 2019
vlc | branch: master | Steve Lhomme <robux4 at ycbcr.xyz> | Mon Feb 25 12:55:02 2019 +0100| [c8b9450e7725ee63d427616cd8240a036a512154] | committer: Steve Lhomme
direct3d11: don't use our own pool when rendering to DXGI_FORMAT_UNKNOWN
We're already using the staging texture to copy from CPU to GPU in that case.
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=c8b9450e7725ee63d427616cd8240a036a512154
---
modules/video_output/win32/direct3d11.c | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/modules/video_output/win32/direct3d11.c b/modules/video_output/win32/direct3d11.c
index e313c8c3c8..8dc97d3802 100644
--- a/modules/video_output/win32/direct3d11.c
+++ b/modules/video_output/win32/direct3d11.c
@@ -566,7 +566,8 @@ static int Open(vout_display_t *vd, const vout_display_cfg_t *cfg,
else
vd->info.subpicture_chromas = NULL;
- vd->pool = Pool;
+ if (sys->picQuad.textureFormat->formatTexture != DXGI_FORMAT_UNKNOWN)
+ vd->pool = Pool;
vd->prepare = Prepare;
vd->display = Display;
vd->control = Control;
@@ -607,10 +608,6 @@ static picture_pool_t *Pool(vout_display_t *vd, unsigned pool_size)
surface_fmt.i_width = sys->picQuad.i_width;
surface_fmt.i_height = sys->picQuad.i_height;
- if (sys->picQuad.textureFormat->formatTexture == DXGI_FORMAT_UNKNOWN)
- sys->sys.pool = picture_pool_NewFromFormat( &surface_fmt, pool_size );
- else
- {
ID3D11Texture2D *textures[pool_size * D3D11_MAX_SHADER_VIEW];
memset(textures, 0, sizeof(textures));
unsigned slices = pool_size;
@@ -677,7 +674,6 @@ static picture_pool_t *Pool(vout_display_t *vd, unsigned pool_size)
//pool_cfg.unlock = Direct3D11UnmapPoolTexture;
}
sys->sys.pool = picture_pool_NewExtended( &pool_cfg );
- }
error:
if (sys->sys.pool == NULL) {
More information about the vlc-commits
mailing list