[vlc-commits] [Git][videolan/vlc][3.0.x] 9 commits: contrib: build postproc as part of ffmpeg
Steve Lhomme (@robUx4)
gitlab at videolan.org
Thu Apr 17 08:08:39 UTC 2025
Steve Lhomme pushed to branch 3.0.x at VideoLAN / VLC
Commits:
8a397800 by Marvin Scholz at 2025-04-16T08:58:27+02:00
contrib: build postproc as part of ffmpeg
If GPL is enabled, build postproc together with ffmpeg
instead of building an ffmpeg-less ancient version with
numerous bugs.
Should fix crashes on macOS and possibly other OSes when
postproc is used.
(cherry picked from commit 599191d3a4063d9d69b29f3a9bbd99fbfa636455) (edited)
- 3.0 didn't have the ranlib patch
- - - - -
82cf6615 by Steve Lhomme at 2025-04-16T09:02:06+02:00
contrib: d3d11: use working headers directly
We don't need to go through widl if we get all the dependent headers.
The headers found in the videolan tarball cache are outdated.
- - - - -
bfad92c8 by Steve Lhomme at 2025-04-16T09:02:06+02:00
contrib: d3d11: consider the headers are OK starting with mingw-w64 v8
- - - - -
e5acf58a by Steve Lhomme at 2025-04-16T09:02:06+02:00
d3d11: allow creating shared D3D11 textures
- - - - -
eeb0578d by Steve Lhomme at 2025-04-16T09:02:06+02:00
direct3d11: use a function to create the staging texture
- - - - -
833b0255 by Steve Lhomme at 2025-04-16T09:02:06+02:00
direct3d11: use a shared staging texture for sources from another D3D11
This can happen with a clone video output. The decoder D3D11 device
is tied to the first display pool or its own. We can copy from GPU to GPU.
- - - - -
d652d58f by Steve Lhomme at 2025-04-16T09:46:53+02:00
contrib: d3d9: download already patched dxva2api.h
No need a widl an old and patched version.
- - - - -
9e48d6e3 by Steve Lhomme at 2025-04-16T09:46:53+02:00
contrib: d3d9: download already patched d3d9caps.h
The headers found in the videolan tarball cache are outdated.
- - - - -
3e1083e7 by Steve Lhomme at 2025-04-16T09:46:53+02:00
contrib: d3d9: consider mingw-w64 v8 has recent enough headers
All mentioned hashes as part of the v8 release.
- - - - -
20 changed files:
- contrib/src/d3d11/SHA512SUMS
- − contrib/src/d3d11/dxgi12.patch
- − contrib/src/d3d11/dxgi1_3.idl
- − contrib/src/d3d11/dxgi1_4.idl
- − contrib/src/d3d11/dxgi1_5.idl
- − contrib/src/d3d11/dxgi1_6.idl
- − contrib/src/d3d11/dxgidebug.patch
- − contrib/src/d3d11/processor_format.patch
- contrib/src/d3d11/rules.mak
- contrib/src/d3d9/SHA512SUMS
- − contrib/src/d3d9/d3d9caps.patch
- − contrib/src/d3d9/dxva2api.patch
- contrib/src/d3d9/rules.mak
- contrib/src/ffmpeg/rules.mak
- − contrib/src/postproc/rules.mak
- − contrib/src/postproc/win-pic.patch
- modules/hw/d3d11/d3d11_deinterlace.c
- modules/video_chroma/d3d11_fmt.c
- modules/video_chroma/d3d11_fmt.h
- modules/video_output/win32/direct3d11.c
Changes:
=====================================
contrib/src/d3d11/SHA512SUMS
=====================================
@@ -1,10 +1,15 @@
-0d97a004acd9d99d685aef6ae3c41b9951b41170d197173838ad2dbad4db309debcc2dd6ab2cfaa849ab9ca9841ae80232739b113b3e72c35ec8a481066acff5 d3d11.idl
+47f35cd2cc5429f50bcc468af8fb5282e59840f1faca29b90fa2b12e2224e8b9631523d2555d15936fc7722d6adf7285bd10e80d359f38d3bedfd1a809b6df00 d3d11.h
d309fc35b655213673ca2e79776a41088009cca845a7fe1968f0683093587de771039a3f2acd59f778e382ddb558309f728bbebbc4ffd1cfacc08bf57a223a89 d3d11_1.h
9cd0805fb4ede1b6269455ac44f309b1f3e60a64c401e157f9866ce41427324c05717f3dc166aef12bd865ffca0c96696de8a9e4b549836a47c322aeae955f4e d3d11_2.h
5c9b2d3ca071d555f61d45c839b3a474a8e3a440cb386c65303f0e9c95da74565ac7bdc6430582bdd506c192fc259707f10fd2b111ca0374e487e6bbd5ffc3ee d3d11_3.h
f87eadc5c9a16a2e38d6a5615bd4e6d338df6a8b35879f315bcec39c876ebe9be47b0ce4174a5c259e6166895352a2403e503ae852218702fd7ed97b7aa3b142 d3d11_4.h
-04b208ddf9c91f923d262ae68a5fb0588a3ef1a39ea450eaac9031e021bd5efdc7b30e3fb3e589b07bc88e41f8861caeb56934a2fa6cbf2efb7404f5f3453b70 dxgidebug.idl
-1bee79fcaf5db6e53510f49fb40009fe6291ffafe47e1aea46ae0068afd001b405b0d970a55af63e475fbb18108e1ca0f91d86a18b6598b922c454ed082e8941 dxgi1_2.idl
-3f24632a71c96498f3432ed55ebdbe0a90e00c86ff88e4a41d1d04fdda14532aeff7799401803a03c6f69b3a07930d3f190211accef4ca199a21b3671acdcc45 dxgitype.h
-bba687b7cd4fd321f99d70a8137b1aa01851d8fd72a007cf5f8e5bce55fe06e15c27fe82de6493291b7c9932ceb43642234ed07d9a6bcb6140229cdbeb4a49bd dxgiformat.h
-40eec2c5a96aeafb18ed9936c6ca9fc05303a08572efe6a3483e316b8af4e392eba863af86cdbb1342ac3ccb039be1b962688b05610e07f426bab6474073bfa3 dxgi.idl
+baa4e380e41467c7d53191756376e8a60b9a2173ab3db08d5736416d89b6ca0b2b9d8eccce24e88731fdfbb9711ac36782a7fac03733de1342684a8557d2efbf dxgidebug.h
+3d1fa12e80b8ce7d54568439b1229b08356ba07b8d35a73971b9ba9fe8efe2b3e05e05bf343663fc921d421a0deb4b2355af49a6dbf20d30e7fafdc898537510 dxgi1_2.h
+b843e74266fdfdf4b6fdb121d75db441c48ab09282e20b1b9b81d816e9f2130b1404e9e4065bae69868e32b687c58a13d83f057a882b8cb4f897944b6330a22a dxgi1_3.h
+22c658dc1a9c1a047f429cc27b46b81c42f0d44e35b5936dcfb74ed3d1dcd5aae53beb0a9e3f1285493e2f03ac85544b5bc3d0a91d37ef537a430cbbe89c1173 dxgi1_4.h
+bcbb0b2929a512137b1298b160e265141b8405e336dd347e6131a938edc62f2906e19f1451fef07ecae328824533445a90c8dffe10d3eab1ef5c93219b61a082 dxgi1_5.h
+5ab157d2c41e9fc070a7eeb31479ffd0d3a259a4cd60b747077fe0e4fcd67aa79da9232058127158316332b0d672e6c78ef224d3c17fdda1307074e4f4f09902 dxgi1_6.h
+7887819e18867f793448e21e5a2a73305d4685ad2b80a4499b5a5710f2c7d0dc9079184e7e82aa5f1837c7a1b2d621ca392a9b8a903f0d135b29969be51d508a dxgitype.h
+6c4929f4a4b262d901aa0b1a7b47ffc739ee8e1ecd82f20627c43ad0ee5367aa7c8b6f374a25273b6928d5d1e3c735fbb84404107e6e4d2f2965252a6d91c0c3 dxgicommon.h
+3b1ccecaca5223a870a6195d4924908cfbc874d00e4dcb1e6415ec29323a15d36fae410049e86f25462dba996cc033f8ab716d9554c34f01ce061282b93c6f6e dxgiformat.h
+cb0120badd7671f0cda1055971554950fc39c77e92c1acc2ab98f8c9e0398456799d2fb49a3c73e4d4452deaffd551d8754ad0665803feb3cf0711841e297c1c dxgi.h
=====================================
contrib/src/d3d11/dxgi12.patch deleted
=====================================
@@ -1,109 +0,0 @@
---- tarballs/dxgi1_2.idl.orig 2016-03-02 16:01:30.243405100 +0100
-+++ tarballs/dxgi1_2.idl 2016-03-02 16:19:58.006959300 +0100
-@@ -232,3 +232,106 @@ interface IDXGIAdapter2 : IDXGIAdapter1
- {
- HRESULT GetDesc2([out] DXGI_ADAPTER_DESC2 *pDesc);
- }
-+
-+typedef struct DXGI_OUTDUPL_DESC {
-+ DXGI_MODE_DESC ModeDesc;
-+ DXGI_MODE_ROTATION Rotation;
-+ BOOL DesktopImageInSystemMemory;
-+} DXGI_OUTDUPL_DESC;
-+
-+typedef struct DXGI_OUTDUPL_POINTER_POSITION {
-+ POINT Position;
-+ BOOL Visible;
-+} DXGI_OUTDUPL_POINTER_POSITION;
-+
-+typedef struct DXGI_OUTDUPL_FRAME_INFO {
-+ LARGE_INTEGER LastPresentTime;
-+ LARGE_INTEGER LastMouseUpdateTime;
-+ UINT AccumulatedFrames;
-+ BOOL RectsCoalesced;
-+ BOOL ProtectedContentMaskedOut;
-+ DXGI_OUTDUPL_POINTER_POSITION PointerPosition;
-+ UINT TotalMetadataBufferSize;
-+ UINT PointerShapeBufferSize;
-+} DXGI_OUTDUPL_FRAME_INFO;
-+
-+typedef struct DXGI_OUTDUPL_MOVE_RECT {
-+ POINT SourcePoint;
-+ RECT DestinationRect;
-+} DXGI_OUTDUPL_MOVE_RECT;
-+
-+typedef struct DXGI_OUTDUPL_POINTER_SHAPE_INFO {
-+ UINT Type;
-+ UINT Width;
-+ UINT Height;
-+ UINT Pitch;
-+ POINT HotSpot;
-+} DXGI_OUTDUPL_POINTER_SHAPE_INFO;
-+[
-+ object,
-+ uuid(191cfac3-a341-470d-b26e-a864f428319c),
-+ local,
-+ pointer_default(unique)
-+]
-+interface IDXGIOutputDuplication :
-+ IDXGIObject
-+{
-+ void GetDesc(
-+ [out] DXGI_OUTDUPL_DESC* pDesc);
-+ HRESULT AcquireNextFrame(
-+ [in] UINT TimeoutInMilliseconds,
-+ [out] DXGI_OUTDUPL_FRAME_INFO* pFrameInfo,
-+ [out] IDXGIResource** ppDesktopResource);
-+ HRESULT GetFrameDirtyRects(
-+ [in] UINT DirtyRectsBufferSize,
-+ [out] RECT* pDirtyRectsBuffer,
-+ [out] UINT* pDirtyRectsBufferSizeRequired);
-+ HRESULT GetFrameMoveRects(
-+ [in] UINT MoveRectsBufferSize,
-+ [out] DXGI_OUTDUPL_MOVE_RECT* pMoveRectBuffer,
-+ [out] UINT* pMoveRectsBufferSizeRequired);
-+ HRESULT GetFramePointerShape(
-+ [in] UINT PointerShapeBufferSize,
-+ [out] void* pPointerShapeBuffer,
-+ [out] UINT* pPointerShapeBufferSizeRequired,
-+ [out] DXGI_OUTDUPL_POINTER_SHAPE_INFO* pPointerShapeInfo);
-+ HRESULT MapDesktopSurface(
-+ [out] DXGI_MAPPED_RECT* pLockedRect);
-+ HRESULT UnMapDesktopSurface();
-+ HRESULT ReleaseFrame();
-+};
-+
-+typedef struct DXGI_MODE_DESC1
-+{
-+ UINT Width;
-+ UINT Height;
-+ DXGI_RATIONAL RefreshRate;
-+ DXGI_FORMAT Format;
-+ DXGI_MODE_SCANLINE_ORDER ScanlineOrdering;
-+ DXGI_MODE_SCALING Scaling;
-+ BOOL Stereo;
-+} DXGI_MODE_DESC1;
-+
-+[
-+ object,
-+ uuid(00cddea8-939b-4b83-a340-a685226666cc),
-+ local,
-+ pointer_default(unique)
-+]
-+interface IDXGIOutput1 : IDXGIOutput
-+{
-+ HRESULT GetDisplayModeList1(
-+ [in] DXGI_FORMAT EnumFormat,
-+ [in] UINT Flags,
-+ [in, out] UINT * pNumModes,
-+ [out] DXGI_MODE_DESC1 *pDesc);
-+ HRESULT FindClosestMatchingMode1(
-+ [in] const DXGI_MODE_DESC1 *pModeToMatch,
-+ [out] DXGI_MODE_DESC1 *pClosestMatch,
-+ [in] IUnknown * pConcernedDevice);
-+ HRESULT GetDisplaySurfaceData1(
-+ [in] IDXGIResource *pDestination);
-+ HRESULT DuplicateOutput(
-+ [in] IUnknown *pDevice,
-+ [out] IDXGIOutputDuplication **ppOutputDuplication);
-+};
=====================================
contrib/src/d3d11/dxgi1_3.idl deleted
=====================================
@@ -1,242 +0,0 @@
-/*
- * Copyright 2015 Martell Malone
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
- */
-
-import "dxgi1_2.idl";
-
-cpp_quote("#define DXGI_CREATE_FACTORY_DEBUG 0x1")
-
-typedef struct DXGI_DECODE_SWAP_CHAIN_DESC
-{
- UINT Flags;
-} DXGI_DECODE_SWAP_CHAIN_DESC;
-
-typedef enum DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS
-{
- DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAG_NOMINAL_RANGE = 0x1,
- DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAG_BT709 = 0x2,
- DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAG_xvYCC = 0x4,
-} DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS;
-
-[
- object,
- local,
- uuid(2633066b-4514-4c7a-8fd8-12ea98059d18)
-]
-interface IDXGIDecodeSwapChain : IUnknown
-{
- HRESULT PresentBuffer(
- UINT buffer,
- UINT sync,
- UINT flags
- );
-
- HRESULT SetSourceRect(
- const RECT* rect
- );
-
- HRESULT SetTargetRect(
- const RECT* rect
- );
-
- HRESULT SetDestSize(
- UINT width,
- UINT height
- );
-
- HRESULT GetSourceRect(
- [out] RECT* rect
- );
-
- HRESULT GetTargetRect(
- [out] RECT* rect
- );
-
- HRESULT GetDestSize(
- [out] UINT* width,
- [out] UINT* height
- );
-
- HRESULT SetColorSpace(
- DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS colorSpace
- );
-
- DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS GetColorSpace();
-}
-
-[
- object,
- local,
- uuid(41e7d1f2-a591-4f7b-a2e5-fa9c843e1c12)
-]
-interface IDXGIFactoryMedia :IUnknown
-{
- HRESULT CreateSwapChainForCompositionSurfaceHandle(
- [in] IUnknown* device,
- [in] HANDLE surface,
- [in] const DXGI_SWAP_CHAIN_DESC1* desc,
- [in] IDXGIOutput* output,
- [out] IDXGISwapChain1** swapchain
- );
-
- HRESULT CreateDecodeSwapChainForCompositionSurfaceHandle(
- [in] IUnknown* device,
- [in] HANDLE surface,
- [in] DXGI_DECODE_SWAP_CHAIN_DESC* desc,
- [in] IDXGIResource* buffer,
- [in] IDXGIOutput* output,
- [out] IDXGIDecodeSwapChain** swapchain
- );
-}
-
-typedef enum DXGI_FRAME_PRESENTATION_MODE
-{
- DXGI_FRAME_PRESENTATION_MODE_COMPOSED = 0,
- DXGI_FRAME_PRESENTATION_MODE_OVERLAY = 1,
- DXGI_FRAME_PRESENTATION_MODE_NONE = 2,
-} DXGI_FRAME_PRESENTATION_MODE;
-
-typedef struct DXGI_FRAME_STATISTICS_MEDIA
-{
- UINT PresentCount;
- UINT PresentRefreshCount;
- UINT SyncRefreshCount;
- LARGE_INTEGER SyncQPCTime;
- LARGE_INTEGER SyncGPUTime;
- DXGI_FRAME_PRESENTATION_MODE CompositionMode;
- UINT ApprovedPresentDuration;
-} DXGI_FRAME_STATISTICS_MEDIA;
-
-[
- object,
- local,
- uuid(dd95b90b-f05f-4f6a-bd65-25bfb264bd84)
-]
-interface IDXGISwapChainMedia : IUnknown
-{
- HRESULT GetFrameStatisticsMedia(
- [out] DXGI_FRAME_STATISTICS_MEDIA* pStats
- );
-
- HRESULT SetPresentDuration(
- UINT duration
- );
-
- HRESULT CheckPresentDurationSupport(
- UINT duration,
- [out] UINT* smallerduration,
- [out] UINT* largerduration
- );
-};
-
-typedef enum DXGI_OVERLAY_SUPPORT_FLAG
-{
- DXGI_OVERLAY_SUPPORT_FLAG_DIRECT = 0x1,
- DXGI_OVERLAY_SUPPORT_FLAG_SCALING = 0x2
-} DXGI_OVERLAY_SUPPORT_FLAG;
-
-[
- object,
- local,
- uuid(6007896c-3244-4afd-bf18-a6d3beda5023)
-]
-interface IDXGIDevice3 : IDXGIDevice2
-{
- void Trim();
-}
-
-[
- object,
- local,
- uuid(595e39d1-2724-4663-99b1-da969de28364)
-]
-interface IDXGIOutput2 : IDXGIOutput1
-{
- BOOL SupportsOverlays();
-}
-
-[
- object,
- local,
- uuid(8a6bb301-7e7e-41F4-a8e0-5b32f7f99b18)
-]
-interface IDXGIOutput3 : IDXGIOutput2
-{
- HRESULT CheckOverlaySupport(
- [in] DXGI_FORMAT format,
- [out, in] IUnknown* device,
- [out] UINT* flags
- );
-}
-
-[local] HRESULT __stdcall CreateDXGIFactory2(UINT Flags, REFIID riid, void **factory);
-
-typedef struct DXGI_MATRIX_3X2_F
-{
- float _11;
- float _12;
- float _21;
- float _22;
- float _31;
- float _32;
-} DXGI_MATRIX_3X2_F;
-
-[
- object,
- local,
- uuid(a8be2ac4-199f-4946-b331-79599fb98de7)
-]
-interface IDXGISwapChain2 : IDXGISwapChain1
-{
- HRESULT SetSourceSize(
- UINT width,
- UINT height
- );
-
- HRESULT GetSourceSize(
- [out] UINT* width,
- [out] UINT* height
- );
-
- HRESULT SetMaximumFrameLatency(
- UINT max_latency
- );
-
- HRESULT GetMaximumFrameLatency(
- [out] UINT* max_latency
- );
-
- HANDLE GetFrameLatencyWaitableObject();
-
- HRESULT SetMatrixTransform(
- const DXGI_MATRIX_3X2_F* matrix
- );
-
- HRESULT GetMatrixTransform(
- [out] DXGI_MATRIX_3X2_F* matrix
- );
-}
-
-[
- object,
- local,
- uuid(25483823-cd46-4c7d-86ca-47aa95b837bd)
-]
-interface IDXGIFactory3 : IDXGIFactory2
-{
- UINT GetCreationFlags();
-}
=====================================
contrib/src/d3d11/dxgi1_4.idl deleted
=====================================
@@ -1,109 +0,0 @@
-/*
- * Copyright 2016 Steve Lhomme
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
- */
-
-import "dxgi1_3.idl";
-
-typedef enum DXGI_COLOR_SPACE_TYPE {
- DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709 = 0,
- DXGI_COLOR_SPACE_RGB_FULL_G10_NONE_P709 = 1,
- DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P709 = 2,
- DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P2020 = 3,
- DXGI_COLOR_SPACE_RESERVED = 4,
- DXGI_COLOR_SPACE_YCBCR_FULL_G22_NONE_P709_X601 = 5,
- DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P601 = 6,
- DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P601 = 7,
- DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P709 = 8,
- DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P709 = 9,
- DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P2020 = 10,
- DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P2020 = 11,
- DXGI_COLOR_SPACE_RGB_FULL_G2084_NONE_P2020 = 12,
- DXGI_COLOR_SPACE_YCBCR_STUDIO_G2084_LEFT_P2020 = 13,
- DXGI_COLOR_SPACE_RGB_STUDIO_G2084_NONE_P2020 = 14,
- DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_TOPLEFT_P2020 = 15,
- DXGI_COLOR_SPACE_YCBCR_STUDIO_G2084_TOPLEFT_P2020 = 16,
- DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P2020 = 17,
- DXGI_COLOR_SPACE_CUSTOM = 0xFFFFFFFF,
-} DXGI_COLOR_SPACE_TYPE;
-
-[
- object,
- local,
- uuid(94d99bdb-f1f8-4ab0-b236-7da0170edab1)
-]
-interface IDXGISwapChain3 : IDXGISwapChain2
-{
- UINT GetCurrentBackBufferIndex();
-
- HRESULT CheckColorSpaceSupport(
- [in] DXGI_COLOR_SPACE_TYPE ColorSpace,
- [out] UINT* pColorSpaceSupport
- );
-
- HRESULT SetColorSpace1(
- [in] DXGI_COLOR_SPACE_TYPE ColorSpace
- );
-
- HRESULT ResizeBuffers1(
- [in] UINT BufferCount,
- [in] UINT Width,
- [in] UINT Height,
- [in] DXGI_FORMAT Format,
- [in] UINT SwapChainFlags,
- [in] const UINT* pCreationNodeMask,
- [in] IUnknown* const* ppPresentQueue
- );
-};
-
-typedef enum DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG
-{
- DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG_PRESENT = 0x01,
- DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG_OVERLAY_PRESENT = 0x02,
-} DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG;
-
-[
- object,
- local,
- uuid(1bc6ea02-ef36-464f-bf0c-21ca39e5168a)
-]
-interface IDXGIFactory4 : IDXGIFactory3
-{
- HRESULT EnumAdapterByLuid(
- [in] LUID AdapterLuid,
- [in] REFIID riid,
- [out] void **ppvAdapter
- );
- HRESULT EnumWarpAdapter(
- [in] REFIID riid,
- [out] void **ppvAdapter
- );
-}
-
-[
- object,
- local,
- uuid(dc7dca35-2196-414d-9F53-617884032a60)
-]
-interface IDXGIOutput4 : IDXGIOutput3
-{
- HRESULT CheckOverlayColorSpaceSupport(
- [in] DXGI_FORMAT Format,
- [in] DXGI_COLOR_SPACE_TYPE ColorSpace,
- [in] IUnknown *pConcernedDevice,
- [out] UINT *pFlags
- );
-}
=====================================
contrib/src/d3d11/dxgi1_5.idl deleted
=====================================
@@ -1,67 +0,0 @@
-/*
- * Copyright 2017 Steve Lhomme
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
- */
-
-import "dxgi1_4.idl";
-
-typedef enum DXGI_HDR_METADATA_TYPE
-{
- DXGI_HDR_METADATA_TYPE_NONE = 0x00,
- DXGI_HDR_METADATA_TYPE_HDR10 = 0x01,
-} DXGI_HDR_METADATA_TYPE;
-
-typedef struct DXGI_HDR_METADATA_HDR10
-{
- UINT16 RedPrimary[2];
- UINT16 GreenPrimary[2];
- UINT16 BluePrimary[2];
- UINT16 WhitePoint[2];
- UINT MaxMasteringLuminance;
- UINT MinMasteringLuminance;
- UINT16 MaxContentLightLevel;
- UINT16 MaxFrameAverageLightLevel;
-} DXGI_HDR_METADATA_HDR10;
-
-[
- object,
- local,
- uuid(3d585d5a-bd4a-489e-b1f4-3dbcb6452ffb)
-]
-interface IDXGISwapChain4 : IDXGISwapChain3
-{
- HRESULT SetHDRMetaData(
- [in] DXGI_HDR_METADATA_TYPE Type,
- [in] UINT Size,
- [in] void* pMetaData
- );
-};
-
-[
- object,
- local,
- uuid(80A07424-AB52-42EB-833C-0C42FD282D98)
-]
-interface IDXGIOutput5 : IDXGIOutput4
-{
- HRESULT DuplicateOutput1(
- [in] IUnknown *pDevice,
- UINT Flags,
- [in] UINT SupportedFormatsCount,
- [in] const DXGI_FORMAT *pSupportedFormats,
- [out] IDXGIOutputDuplication **ppOutputDuplication
- );
-}
=====================================
contrib/src/d3d11/dxgi1_6.idl deleted
=====================================
@@ -1,72 +0,0 @@
-/*
- * Copyright 2017 Steve Lhomme
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
- */
-
-import "dxgi1_4.idl";
-
-cpp_quote("/* HACK as widl segfaults with too many imports */")
-cpp_quote("#include <dxgi1_5.h>")
-cpp_quote("#ifndef __dxgi1_5_h__")
-
-[
- object,
- local,
- uuid(80A07424-AB52-42EB-833C-0C42FD282D98)
-]
-interface IDXGIOutput5 : IDXGIOutput4
-{
- HRESULT DuplicateOutput1(
- [in] IUnknown *pDevice,
- UINT Flags,
- [in] UINT SupportedFormatsCount,
- [in] const DXGI_FORMAT *pSupportedFormats,
- [out] IDXGIOutputDuplication **ppOutputDuplication
- );
-}
-
-cpp_quote("#endif /* __dxgi1_5_h__ */")
-
-typedef struct DXGI_OUTPUT_DESC1
-{
- WCHAR DeviceName[32];
- RECT DesktopCoordinates;
- BOOL AttachedToDesktop;
- DXGI_MODE_ROTATION Rotation;
- HMONITOR Monitor;
- UINT BitsPerColor;
- DXGI_COLOR_SPACE_TYPE ColorSpace;
- FLOAT RedPrimary[2];
- FLOAT GreenPrimary[2];
- FLOAT BluePrimary[2];
- FLOAT WhitePoint[2];
- FLOAT MinLuminance;
- FLOAT MaxLuminance;
- FLOAT MaxFullFrameLuminance;
- BOOL InternalOutput;
-} DXGI_OUTPUT_DESC1;
-
-[
- object,
- local,
- uuid(068346e8-aaec-4b84-add7-137f513f77a1)
-]
-interface IDXGIOutput6 : IDXGIOutput5
-{
- HRESULT GetDesc1(
- [out] DXGI_OUTPUT_DESC1 *pDesc
- );
-}
=====================================
contrib/src/d3d11/dxgidebug.patch deleted
=====================================
@@ -1,51 +0,0 @@
-diff --git a/dxgidebug.idl b/dxgidebug.idl
---- /dev/null
-+++ b/dxgidebug.idl
-@@ -0,0 +1,44 @@
-+/*
-+ * Copyright 2015 Steve Lhomme
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License as published by the Free Software Foundation; either
-+ * version 2.1 of the License, or (at your option) any later version.
-+ *
-+ * This library is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ * Lesser General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA02110-1301, USA
-+ */
-+
-+import "oaidl.idl";
-+
-+cpp_quote("DEFINE_GUID(DXGI_DEBUG_ALL, 0xe48ae283, 0xda80, 0x490b,0x87, 0xe6, 0x43, 0xe9, 0xa9, 0xcf, 0xda, 0x08);")
-+cpp_quote("DEFINE_GUID(DXGI_DEBUG_DX, 0x35cdd7fc, 0x13b2, 0x421d,0xa5, 0xd7, 0x7e, 0x44, 0x51, 0x28, 0x7d, 0x64);")
-+cpp_quote("DEFINE_GUID(DXGI_DEBUG_DXGI, 0x25cddaa4, 0xb1c6, 0x47e1,0xac, 0x3e, 0x98, 0x87, 0x5b, 0x5a, 0x2e, 0x2a);")
-+cpp_quote("DEFINE_GUID(DXGI_DEBUG_APP, 0x06cd6e01, 0x4219, 0x4ebd,0x87, 0x90, 0x27, 0xed, 0x23, 0x36, 0x0c, 0x62);")
-+
-+typedef enum DXGI_DEBUG_RLO_FLAGS {
-+ DXGI_DEBUG_RLO_SUMMARY = 0x0001,
-+ DXGI_DEBUG_RLO_DETAIL = 0x0002,
-+ DXGI_DEBUG_RLO_IGNORE_INTERNAL = 0x0004,
-+ DXGI_DEBUG_RLO_ALL = 0x0007
-+} DXGI_DEBUG_RLO_FLAGS;
-+
-+[
-+ object,
-+ local,
-+ uuid(119e7452-de9e-40fe-8806-88f90c12b441)
-+]
-+interface IDXGIDebug : IUnknown
-+{
-+ HRESULT ReportLiveObjects(
-+ [in] GUID apiid,
-+ [in] DXGI_DEBUG_RLO_FLAGS flags);
-+}
-+
---
-1.9.5.msysgit.0
-
=====================================
contrib/src/d3d11/processor_format.patch deleted
=====================================
@@ -1,21 +0,0 @@
---- a/d3d11.idl 2016-02-26 09:21:48.019575300 +0100
-+++ b/d3d11.idl 2016-02-26 10:41:58.461027900 +0100
-@@ -3199,6 +3199,18 @@ typedef enum D3D11_CREATE_DEVICE_FLAG {
- D3D11_CREATE_DEVICE_VIDEO_SUPPORT = 0x0800
- } D3D11_CREATE_DEVICE_FLAG;
-
-+typedef enum D3D11_VIDEO_PROCESSOR_FORMAT_SUPPORT
-+{
-+ D3D11_VIDEO_PROCESSOR_FORMAT_SUPPORT_INPUT = 0x00000001,
-+ D3D11_VIDEO_PROCESSOR_FORMAT_SUPPORT_OUTPUT = 0x00000002,
-+} D3D11_VIDEO_PROCESSOR_FORMAT_SUPPORT;
-+
-+typedef struct D3D11_FEATURE_DATA_THREADING
-+{
-+ BOOL DriverConcurrentCreates;
-+ BOOL DriverCommandLists;
-+} D3D11_FEATURE_DATA_THREADING;
-+
- const UINT D3D11_SDK_VERSION = 7;
-
- cpp_quote("#include <d3d10_1.h>")
=====================================
contrib/src/d3d11/rules.mak
=====================================
@@ -1,161 +1,88 @@
# generate Direct3D11 temporary include
-ifdef HAVE_CROSS_COMPILE
-IDL_INCLUDES = -I/usr/include/wine/windows/ -I/usr/include/wine/wine/windows/
-else
-#ugly way to get the default location of standard idl files
-IDL_INCLUDES = -I/`echo $(MSYSTEM) | tr A-Z a-z`/$(BUILD)/include
-endif
-IDL_INCLUDES += -Ipthreads/mingw-w64-headers/include
-
-D3D11_COMMIT_ID := a0cd5afeb60be3be0860e9a203314c10485bb9b8
+D3D11_COMMIT_ID := f701c4c8cc9a881e660904f8c0047908a7b2ed04
D3D11_1_COMMIT_ID := aa6ab47929a9cac6897f38e630ce0bb88458e288
D3D11_4_COMMIT_ID := 6a1e782bb60bb1a93b5ab20fe895394d9c0904c2
-DXGI12_COMMIT_ID := 790a6544347b53c314b9c6f1ea757a2d5504c67e
-DXGITYPE_COMMIT_ID := f4aba520d014ecfe3563e33860de001caf2804e2
-D3D11_IDL_URL := http://sourceforge.net/p/mingw-w64/mingw-w64/ci/$(D3D11_COMMIT_ID)/tree/mingw-w64-headers/direct-x/include/d3d11.idl?format=raw
+DXGI12_COMMIT_ID := 3419b2d4b2b7e8b378696dc79546e3593f00ade6
+DXGITYPE_COMMIT_ID := 3419b2d4b2b7e8b378696dc79546e3593f00ade6
+DXGIDEBUG_COMMIT_ID := 22333acf22f89b9709c718467e04735157b5d27a
+D3D11_H_URL := http://sourceforge.net/p/mingw-w64/mingw-w64/ci/$(D3D11_COMMIT_ID)/tree/mingw-w64-headers/include/d3d11.h?format=raw
D3D11_1_H_URL := http://sourceforge.net/p/mingw-w64/mingw-w64/ci/$(D3D11_1_COMMIT_ID)/tree/mingw-w64-headers/direct-x/include/d3d11_1.h?format=raw
D3D11_2_H_URL := http://sourceforge.net/p/mingw-w64/mingw-w64/ci/$(D3D11_1_COMMIT_ID)/tree/mingw-w64-headers/direct-x/include/d3d11_2.h?format=raw
D3D11_3_H_URL := http://sourceforge.net/p/mingw-w64/mingw-w64/ci/$(D3D11_1_COMMIT_ID)/tree/mingw-w64-headers/direct-x/include/d3d11_3.h?format=raw
D3D11_4_H_URL := http://sourceforge.net/p/mingw-w64/mingw-w64/ci/$(D3D11_4_COMMIT_ID)/tree/mingw-w64-headers/direct-x/include/d3d11_4.h?format=raw
-DXGI12_IDL_URL := http://sourceforge.net/p/mingw-w64/mingw-w64/ci/$(DXGI12_COMMIT_ID)/tree/mingw-w64-headers/direct-x/include/dxgi1_2.idl?format=raw
-DXGITYPE_H_URL := http://sourceforge.net/p/mingw-w64/mingw-w64/ci/$(DXGITYPE_COMMIT_ID)/tree/mingw-w64-headers/direct-x/include/dxgitype.h?format=raw
-DXGIFORMAT_H_URL := http://sourceforge.net/p/mingw-w64/mingw-w64/ci/$(DXGITYPE_COMMIT_ID)/tree/mingw-w64-headers/direct-x/include/dxgiformat.h?format=raw
-DXGI_IDL_URL := http://sourceforge.net/p/mingw-w64/mingw-w64/ci/$(DXGITYPE_COMMIT_ID)/tree/mingw-w64-headers/direct-x/include/dxgi.idl?format=raw
-DST_D3D11_H = $(PREFIX)/include/d3d11.h
-DST_D3D11_1_H = $(PREFIX)/include/d3d11_1.h
-DST_D3D11_2_H = $(PREFIX)/include/d3d11_2.h
-DST_D3D11_3_H = $(PREFIX)/include/d3d11_3.h
-DST_D3D11_4_H = $(PREFIX)/include/d3d11_4.h
-DST_DXGIDEBUG_H = $(PREFIX)/include/dxgidebug.h
-DST_DXGITYPE_H = $(PREFIX)/include/dxgitype.h
-DST_DXGIFORMAT_H = $(PREFIX)/include/dxgiformat.h
-DST_DXGI_IDL = $(PREFIX)/include/dxgi.idl
-DST_DXGI12_H = $(PREFIX)/include/dxgi1_2.h
-DST_DXGI13_H = $(PREFIX)/include/dxgi1_3.h
-DST_DXGI14_H = $(PREFIX)/include/dxgi1_4.h
-DST_DXGI15_H = $(PREFIX)/include/dxgi1_5.h
-DST_DXGI16_H = $(PREFIX)/include/dxgi1_6.h
+DXGI12_H_URL := http://sourceforge.net/p/mingw-w64/mingw-w64/ci/$(DXGI12_COMMIT_ID)/tree/mingw-w64-headers/include/dxgi1_2.h?format=raw
+DXGI13_H_URL := http://sourceforge.net/p/mingw-w64/mingw-w64/ci/$(DXGI12_COMMIT_ID)/tree/mingw-w64-headers/include/dxgi1_3.h?format=raw
+DXGI14_H_URL := http://sourceforge.net/p/mingw-w64/mingw-w64/ci/$(DXGI12_COMMIT_ID)/tree/mingw-w64-headers/include/dxgi1_4.h?format=raw
+DXGI15_H_URL := http://sourceforge.net/p/mingw-w64/mingw-w64/ci/$(DXGI12_COMMIT_ID)/tree/mingw-w64-headers/include/dxgi1_5.h?format=raw
+DXGI16_H_URL := http://sourceforge.net/p/mingw-w64/mingw-w64/ci/$(DXGI12_COMMIT_ID)/tree/mingw-w64-headers/include/dxgi1_6.h?format=raw
+DXGITYPE_H_URL := http://sourceforge.net/p/mingw-w64/mingw-w64/ci/$(DXGITYPE_COMMIT_ID)/tree/mingw-w64-headers/include/dxgitype.h?format=raw
+DXGICOMMON_H_URL := http://sourceforge.net/p/mingw-w64/mingw-w64/ci/$(DXGITYPE_COMMIT_ID)/tree/mingw-w64-headers/include/dxgicommon.h?format=raw
+DXGIDEBUG_H_URL := http://sourceforge.net/p/mingw-w64/mingw-w64/ci/$(DXGIDEBUG_COMMIT_ID)/tree/mingw-w64-headers/include/dxgidebug.h?format=raw
+DXGIFORMAT_H_URL := http://sourceforge.net/p/mingw-w64/mingw-w64/ci/$(DXGITYPE_COMMIT_ID)/tree/mingw-w64-headers/include/dxgiformat.h?format=raw
+DXGI_H_URL := http://sourceforge.net/p/mingw-w64/mingw-w64/ci/$(DXGITYPE_COMMIT_ID)/tree/mingw-w64-headers/include/dxgi.h?format=raw
ifdef HAVE_WIN32
PKGS += d3d11
endif
-DEPS_d3d11 = pthreads $(DEPS_pthreads)
+ifeq ($(call mingw_at_least, 8), true)
+PKGS_FOUND += d3d11
+endif # MINGW 8
-$(TARBALLS)/d3d11.idl:
- $(call download_pkg,$(D3D11_IDL_URL),d3d11)
+$(TARBALLS)/d3d11.h:
+ $(call download,$(D3D11_H_URL))
$(TARBALLS)/d3d11_1.h:
- $(call download_pkg,$(D3D11_1_H_URL),d3d11)
+ $(call download,$(D3D11_1_H_URL))
$(TARBALLS)/d3d11_2.h:
- $(call download_pkg,$(D3D11_2_H_URL),d3d11)
+ $(call download,$(D3D11_2_H_URL))
$(TARBALLS)/d3d11_3.h:
- $(call download_pkg,$(D3D11_3_H_URL),d3d11)
+ $(call download,$(D3D11_3_H_URL))
$(TARBALLS)/d3d11_4.h:
- $(call download_pkg,$(D3D11_4_H_URL),d3d11)
-
-$(TARBALLS)/dxgidebug.idl:
- (cd $(TARBALLS) && patch -fp1) < $(SRC)/d3d11/dxgidebug.patch
-
-$(TARBALLS)/dxgi1_2.idl:
- $(call download_pkg,$(DXGI12_IDL_URL),d3d11)
-
-$(TARBALLS)/dxgitype.h:
- $(call download_pkg,$(DXGITYPE_H_URL),d3d11)
-
-$(TARBALLS)/dxgiformat.h:
- $(call download_pkg,$(DXGIFORMAT_H_URL),d3d11)
-
-$(TARBALLS)/dxgi.idl:
- $(call download_pkg,$(DXGI_IDL_URL),d3d11)
-
-.sum-d3d11: $(TARBALLS)/d3d11.idl $(TARBALLS)/d3d11_1.h $(TARBALLS)/d3d11_2.h $(TARBALLS)/d3d11_3.h $(TARBALLS)/d3d11_4.h $(TARBALLS)/dxgidebug.idl $(TARBALLS)/dxgi1_2.idl $(TARBALLS)/dxgitype.h $(TARBALLS)/dxgiformat.h $(TARBALLS)/dxgi.idl
-
-d3d11: .sum-d3d11
- mkdir -p $@
- cp $(TARBALLS)/d3d11.idl $@ && cd $@ && patch -fp1 < ../$(SRC)/d3d11/processor_format.patch
-
-dxgi12: .sum-d3d11
- mkdir -p $@
- cp $(TARBALLS)/dxgi1_2.idl $@ && cd $@ && patch -fp1 < ../$(SRC)/d3d11/dxgi12.patch
-
-$(DST_D3D11_H): d3d11
- mkdir -p -- "$(PREFIX)/include/"
- $(WIDL) -DBOOL=WINBOOL -I$(PREFIX)/include $(IDL_INCLUDES) -h -o $@ $</d3d11.idl
-
-$(DST_D3D11_1_H): $(TARBALLS)/d3d11_1.h
- mkdir -p -- "$(PREFIX)/include/"
- cp $(TARBALLS)/d3d11_1.h $@
+ $(call download,$(D3D11_4_H_URL))
-$(DST_D3D11_2_H): $(TARBALLS)/d3d11_2.h
- mkdir -p -- "$(PREFIX)/include/"
- cp $(TARBALLS)/d3d11_2.h $@
+$(TARBALLS)/dxgi1_2.h:
+ $(call download,$(DXGI12_H_URL))
-$(DST_D3D11_3_H): $(TARBALLS)/d3d11_3.h
- mkdir -p -- "$(PREFIX)/include/"
- cp $(TARBALLS)/d3d11_3.h $@
+$(TARBALLS)/dxgi1_3.h:
+ $(call download,$(DXGI13_H_URL))
-$(DST_D3D11_4_H): $(TARBALLS)/d3d11_4.h
- mkdir -p -- "$(PREFIX)/include/"
- cp $(TARBALLS)/d3d11_4.h $@
+$(TARBALLS)/dxgi1_4.h:
+ $(call download,$(DXGI14_H_URL))
-$(DST_DXGIDEBUG_H): $(TARBALLS)/dxgidebug.idl
- mkdir -p -- "$(PREFIX)/include/"
- $(WIDL) -DBOOL=WINBOOL -I$(PREFIX)/include $(IDL_INCLUDES) -h -o $@ $<
+$(TARBALLS)/dxgi1_5.h:
+ $(call download,$(DXGI15_H_URL))
-$(DST_DXGITYPE_H): $(TARBALLS)/dxgitype.h
- mkdir -p -- "$(PREFIX)/include/"
- cp $(TARBALLS)/dxgitype.h $@
+$(TARBALLS)/dxgi1_6.h:
+ $(call download,$(DXGI16_H_URL))
-$(DST_DXGIFORMAT_H): $(TARBALLS)/dxgiformat.h
- mkdir -p -- "$(PREFIX)/include/"
- cp $(TARBALLS)/dxgiformat.h $@
-
-$(DST_DXGI_IDL): $(TARBALLS)/dxgi.idl
- mkdir -p -- "$(PREFIX)/include/"
- cp $(TARBALLS)/dxgi.idl $@
-
-$(DST_DXGI12_H): dxgi12
- mkdir -p -- "$(PREFIX)/include/"
- $(WIDL) -DBOOL=WINBOOL -I$(PREFIX)/include $(IDL_INCLUDES) -h -o $@ $</dxgi1_2.idl
-
-$(DST_DXGI13_H): $(SRC)/d3d11/dxgi1_3.idl $(DST_DXGI12_H)
- mkdir -p -- "$(PREFIX)/include/"
- $(WIDL) -DBOOL=WINBOOL -Idxgi12 -I$(PREFIX)/include $(IDL_INCLUDES) -h -o $@ $<
-
-$(DST_DXGI14_H): $(SRC)/d3d11/dxgi1_4.idl $(DST_DXGI13_H)
- mkdir -p -- "$(PREFIX)/include/"
- $(WIDL) -DBOOL=WINBOOL -Idxgi12 -I$(PREFIX)/include $(IDL_INCLUDES) -h -o $@ $<
-
-$(DST_DXGI15_H): $(SRC)/d3d11/dxgi1_5.idl $(DST_DXGI14_H)
- mkdir -p -- "$(PREFIX)/include/"
- $(WIDL) -DBOOL=WINBOOL -Idxgi12 -I$(PREFIX)/include $(IDL_INCLUDES) -h -o $@ $<
-
-$(DST_DXGI16_H): $(SRC)/d3d11/dxgi1_6.idl $(DST_DXGI15_H)
- mkdir -p -- "$(PREFIX)/include/"
- $(WIDL) -DBOOL=WINBOOL -Idxgi12 -I$(PREFIX)/include $(IDL_INCLUDES) -h -o $@ $<
+$(TARBALLS)/dxgitype.h:
+ $(call download,$(DXGITYPE_H_URL))
-.dxgitype: $(DST_DXGITYPE_H) $(DST_DXGIFORMAT_H) $(DST_DXGI_IDL)
- touch $@
+$(TARBALLS)/dxgicommon.h:
+ $(call download,$(DXGICOMMON_H_URL))
-.dxgi12: .dxgitype $(DST_DXGI12_H)
- touch $@
+$(TARBALLS)/dxgidebug.h:
+ $(call download,$(DXGIDEBUG_H_URL))
-.dxgi13: .dxgi12 $(DST_DXGI13_H)
- touch $@
+$(TARBALLS)/dxgiformat.h:
+ $(call download,$(DXGIFORMAT_H_URL))
-.dxgi14: .dxgi13 $(DST_DXGI14_H)
- touch $@
+$(TARBALLS)/dxgi.h:
+ $(call download,$(DXGI_H_URL))
-.dxgi15: .dxgi14 $(DST_DXGI15_H)
- touch $@
+.sum-d3d11: $(TARBALLS)/d3d11.h $(TARBALLS)/d3d11_1.h $(TARBALLS)/d3d11_2.h $(TARBALLS)/d3d11_3.h $(TARBALLS)/d3d11_4.h $(TARBALLS)/dxgi1_2.h $(TARBALLS)/dxgi1_3.h $(TARBALLS)/dxgi1_4.h $(TARBALLS)/dxgi1_5.h $(TARBALLS)/dxgi1_6.h $(TARBALLS)/dxgitype.h $(TARBALLS)/dxgicommon.h $(TARBALLS)/dxgidebug.h $(TARBALLS)/dxgiformat.h $(TARBALLS)/dxgi.h
-.dxgi16: .dxgi15 $(DST_DXGI16_H)
+d3d11: .sum-d3d11
+ mkdir -p $@
+ cp $(TARBALLS)/d3d11.h $(TARBALLS)/d3d11_1.h $(TARBALLS)/d3d11_2.h $(TARBALLS)/d3d11_3.h $(TARBALLS)/d3d11_4.h $(TARBALLS)/dxgi1_2.h $(TARBALLS)/dxgi1_3.h $(TARBALLS)/dxgi1_4.h $(TARBALLS)/dxgi1_5.h $(TARBALLS)/dxgi1_6.h $(TARBALLS)/dxgitype.h $(TARBALLS)/dxgicommon.h $(TARBALLS)/dxgidebug.h $(TARBALLS)/dxgiformat.h $(TARBALLS)/dxgi.h $@
touch $@
-.d3d11: $(DST_D3D11_H) $(DST_D3D11_1_H) $(DST_D3D11_2_H) $(DST_D3D11_3_H) $(DST_D3D11_4_H) $(DST_DXGIDEBUG_H) .dxgi16
+.d3d11: d3d11
+ mkdir -p -- "$(PREFIX)/include/"
+ cp $(TARBALLS)/d3d11.h $(TARBALLS)/d3d11_1.h $(TARBALLS)/d3d11_2.h $(TARBALLS)/d3d11_3.h $(TARBALLS)/d3d11_4.h $(TARBALLS)/dxgi1_2.h $(TARBALLS)/dxgi1_3.h $(TARBALLS)/dxgi1_4.h $(TARBALLS)/dxgi1_5.h $(TARBALLS)/dxgi1_6.h $(TARBALLS)/dxgitype.h $(TARBALLS)/dxgicommon.h $(TARBALLS)/dxgidebug.h $(TARBALLS)/dxgiformat.h $(TARBALLS)/dxgi.h "$(PREFIX)/include/"
touch $@
=====================================
contrib/src/d3d9/SHA512SUMS
=====================================
@@ -1,3 +1,3 @@
-81ee35501f7657dee19bc24f94af15a34a61b84fd0855a4ff91ab95b0e16ec163594e64accde1acdd289a07b8cd9c0cd640cbcbc87b11bebd92e4db841da80aa d3d9caps.h
-42cfe1b2234065e4ce712f806370d0acbdf9bb4e4dd74859f21fd7e7428eabca9b5607c03aba57d3994d0946722d1837a454891a2e7f8242d353f29bb6a80d55 d3d9.h
-dda26118ad53e99cd8533b773fa2a38f7a184af8b68c797d0efa3256abc80f0d3c304b12601933eff79ed6c67f6f2fce40e31eadfb7ccf27ca2a297f465c113b dxva2api.idl
+8acaaa8d62e5844e5fe42fc71a4337b6b8133ff13bfb2db0402474c9241cd70a50c942f0348d167ef6890fea593186f5505bd03ddc10a3fbbd8f34a8858d7a65 d3d9caps.h
+8f13fea86872a8736e0802ac5900a39e2c93c2811de8dd6bcf26edac5daad2d8d137bd255f44c36ef11b0ea5bc241676aac8fda060b5f6fd737dd9697e4f7857 d3d9.h
+fc601b4279fcc24ff1f0da8a0f451139b00b4c7945d5e7a83e896f6132380cea632a035c150525f36292e2cd7ae31aad56ecad8b1647e1576ae45103fc7cb598 dxva2api.h
=====================================
contrib/src/d3d9/d3d9caps.patch deleted
=====================================
@@ -1,17 +0,0 @@
---- include/d3d9caps.h 2016-04-17 11:41:20.681535900 +0300
-+++ include/d3d9caps.h.old 2016-04-17 11:49:14.065736000 +0300
-@@ -399,6 +399,14 @@ typedef struct _D3DCAPS9 {
-
- } D3DCAPS9;
-
-+typedef struct _D3DOVERLAYCAPS {
-+ UINT Caps;
-+ UINT MaxOverlayDisplayWidth;
-+ UINT MaxOverlayDisplayHeight;
-+
-+} D3DOVERLAYCAPS;
-+
-+
- #ifdef __i386__
- #include <poppack.h>
- #endif
=====================================
contrib/src/d3d9/dxva2api.patch deleted
=====================================
@@ -1,379 +0,0 @@
---- a/dxva2api/dxva2api.idl 2017-06-13 14:45:14.598269100 +0200
-+++ b/dxva2api/dxva2api.idl 2017-06-26 10:08:58.732675300 +0200
-@@ -6,6 +6,8 @@
-
- import "unknwn.idl";
-
-+cpp_quote("#include <winapifamily.h>")
-+
- /* Fake widl types */
- cpp_quote("#if 0")
- typedef DWORD IDirect3DDevice9;
-@@ -14,12 +16,15 @@ typedef DWORD D3DFORMAT;
- typedef DWORD D3DPOOL;
- cpp_quote("#endif")
-
-+cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
-+
- interface IDirectXVideoDecoderService;
-+interface IDirectXVideoProcessorService;
-
--cpp_quote("#ifndef __REFERENCE_TIME_DEFINED")
--cpp_quote("#define __REFERENCE_TIME_DEFINED")
--cpp_quote("typedef LONGLONG REFERENCE_TIME;")
--cpp_quote("#endif /*__REFERENCE_TIME_DEFINED*/")
-+#ifndef __REFERENCE_TIME_DEFINED
-+#define __REFERENCE_TIME_DEFINED
-+typedef LONGLONG REFERENCE_TIME;
-+#endif /*__REFERENCE_TIME_DEFINED*/
-
- cpp_quote("#define DXVA2_ProcAmp_None 0x0000")
- cpp_quote("#define DXVA2_ProcAmp_Brightness 0x0001")
-@@ -142,19 +147,19 @@ cpp_quote(" DXVA2_VideoTransferMatrix_B
- cpp_quote(" DXVA2_VideoTransferMatrix_SMPTE240M = 3 ")
- cpp_quote("} DXVA2_VideoTransferMatrix;")
- cpp_quote("")
--cpp_quote("typedef struct _DXVA2_AYUVSample16 {")
--cpp_quote(" USHORT Cr;")
--cpp_quote(" USHORT Cb;")
--cpp_quote(" USHORT Y;")
--cpp_quote(" USHORT Alpha;")
--cpp_quote("} DXVA2_AYUVSample16;")
--cpp_quote("")
--cpp_quote("typedef struct _DXVA2_AYUVSample8 {")
--cpp_quote(" UCHAR Cr;")
--cpp_quote(" UCHAR Cb;")
--cpp_quote(" UCHAR Y;")
--cpp_quote(" UCHAR Alpha;")
--cpp_quote("} DXVA2_AYUVSample8;")
-+typedef struct _DXVA2_AYUVSample16 {
-+ USHORT Cr;
-+ USHORT Cb;
-+ USHORT Y;
-+ USHORT Alpha;
-+} DXVA2_AYUVSample16;
-+
-+typedef struct _DXVA2_AYUVSample8 {
-+ UCHAR Cr;
-+ UCHAR Cb;
-+ UCHAR Y;
-+ UCHAR Alpha;
-+} DXVA2_AYUVSample8;
-
- typedef struct _DXVA2_ConfigPictureDecode {
- GUID guidConfigBitstreamEncryption;
-@@ -219,40 +224,40 @@ typedef struct _DXVA2_ExtendedFormat {
- };
- } DXVA2_ExtendedFormat;
-
--cpp_quote("typedef struct _DXVA2_Fixed32 {")
--cpp_quote(" __C89_NAMELESS union {")
--cpp_quote(" __C89_NAMELESS struct {")
--cpp_quote(" USHORT Fraction;")
--cpp_quote(" SHORT Value;")
--cpp_quote(" } DUMMYSTRUCTNAME;")
--cpp_quote(" LONG ll;")
--cpp_quote(" } DUMMYUNIONNAME;")
--cpp_quote("} DXVA2_Fixed32;")
--cpp_quote("")
--cpp_quote("typedef struct _DXVA2_FilterValues {")
--cpp_quote(" DXVA2_Fixed32 Level;")
--cpp_quote(" DXVA2_Fixed32 Threshold;")
--cpp_quote(" DXVA2_Fixed32 Radius;")
--cpp_quote("} DXVA2_FilterValues;")
-+typedef struct _DXVA2_Fixed32 {
-+ __C89_NAMELESS union {
-+ __C89_NAMELESS struct {
-+ USHORT Fraction;
-+ SHORT Value;
-+ } DUMMYSTRUCTNAME;
-+ LONG ll;
-+ } DUMMYUNIONNAME;
-+} DXVA2_Fixed32;
-+
-+typedef struct _DXVA2_FilterValues {
-+ DXVA2_Fixed32 Level;
-+ DXVA2_Fixed32 Threshold;
-+ DXVA2_Fixed32 Radius;
-+} DXVA2_FilterValues;
-
- typedef struct _DXVA2_Frequency {
- UINT Numerator;
- UINT Denominator;
- } DXVA2_Frequency;
-
--cpp_quote("typedef struct _DXVA2_ProcAmpValues {")
--cpp_quote(" DXVA2_Fixed32 Brightness;")
--cpp_quote(" DXVA2_Fixed32 Contrast;")
--cpp_quote(" DXVA2_Fixed32 Hue;")
--cpp_quote(" DXVA2_Fixed32 Saturation;")
--cpp_quote("} DXVA2_ProcAmpValues;")
--cpp_quote("")
--cpp_quote("typedef struct _DXVA2_ValueRange {")
--cpp_quote(" DXVA2_Fixed32 MinValue;")
--cpp_quote(" DXVA2_Fixed32 MaxValue;")
--cpp_quote(" DXVA2_Fixed32 DefaultValue;")
--cpp_quote(" DXVA2_Fixed32 StepSize;")
--cpp_quote("} DXVA2_ValueRange;")
-+typedef struct _DXVA2_ProcAmpValues {
-+ DXVA2_Fixed32 Brightness;
-+ DXVA2_Fixed32 Contrast;
-+ DXVA2_Fixed32 Hue;
-+ DXVA2_Fixed32 Saturation;
-+} DXVA2_ProcAmpValues;
-+
-+typedef struct _DXVA2_ValueRange {
-+ DXVA2_Fixed32 MinValue;
-+ DXVA2_Fixed32 MaxValue;
-+ DXVA2_Fixed32 DefaultValue;
-+ DXVA2_Fixed32 StepSize;
-+} DXVA2_ValueRange;
-
- typedef struct _DXVA2_VideoDesc {
- UINT SampleWidth;
-@@ -317,57 +322,93 @@ cpp_quote("DXVA2_DetailFilterTech_Unknow
- cpp_quote("DXVA2_DetailFilterTech_Edge")
- cpp_quote("DXVA2_DetailFilterTech_Sharpening")
- cpp_quote("*/")
--cpp_quote("typedef struct _DXVA2_VideoProcessBltParams {")
--cpp_quote(" REFERENCE_TIME TargetFrame;")
--cpp_quote(" RECT TargetRect;")
--cpp_quote(" SIZE ConstrictionSize;")
--cpp_quote(" UINT StreamingFlags;")
--cpp_quote(" DXVA2_AYUVSample16 BackgroundColor;")
--cpp_quote(" DXVA2_ExtendedFormat DestFormat;")
--cpp_quote(" DXVA2_ProcAmpValues ProcAmpValues;")
--cpp_quote(" DXVA2_Fixed32 Alpha;")
--cpp_quote(" DXVA2_FilterValues NoiseFilterLuma;")
--cpp_quote(" DXVA2_FilterValues NoiseFilterChroma;")
--cpp_quote(" DXVA2_FilterValues DetailFilterLuma;")
--cpp_quote(" DXVA2_FilterValues DetailFilterChroma;")
--cpp_quote(" DWORD DestData;")
--cpp_quote("} DXVA2_VideoProcessBltParams;")
--cpp_quote("")
--cpp_quote("#ifdef _D3D9_H_")
--cpp_quote("typedef struct _DXVA2_VideoProcessorCaps {")
--cpp_quote(" UINT DeviceCaps;")
--cpp_quote(" D3DPOOL InputPool;")
--cpp_quote(" UINT NumForwardRefSamples;")
--cpp_quote(" UINT NumBackwardRefSamples;")
--cpp_quote(" UINT Reserved;")
--cpp_quote(" UINT DeinterlaceTechnology;")
--cpp_quote(" UINT ProcAmpControlCaps;")
--cpp_quote(" UINT VideoProcessorOperations;")
--cpp_quote(" UINT NoiseFilterTechnology;")
--cpp_quote(" UINT DetailFilterTechnology;")
--cpp_quote("} DXVA2_VideoProcessorCaps;")
--cpp_quote("#endif")
--cpp_quote("")
--cpp_quote("/* SampleData")
--cpp_quote("DXVA2_SampleData_RFF")
--cpp_quote("DXVA2_SampleData_TFF")
--cpp_quote("DXVA2_SampleData_RFF_TFF_Present")
--cpp_quote("*/")
--cpp_quote("")
--cpp_quote("#ifdef _D3D9_H_")
--cpp_quote("typedef struct _DXVA2_VideoSample {")
--cpp_quote(" REFERENCE_TIME Start;")
--cpp_quote(" REFERENCE_TIME End;")
--cpp_quote(" DXVA2_ExtendedFormat SampleFormat;")
--cpp_quote(" IDirect3DSurface9* SrcSurface;")
--cpp_quote(" RECT SrcRect;")
--cpp_quote(" RECT DstRect;")
--cpp_quote(" DXVA2_AYUVSample8 Pal[16];")
--cpp_quote(" DXVA2_Fixed32 PlanarAlpha;")
--cpp_quote(" DWORD SampleData;")
--cpp_quote("} DXVA2_VideoSample;")
--cpp_quote("#endif")
--cpp_quote("")
-+typedef struct _DXVA2_VideoProcessBltParams {
-+ REFERENCE_TIME TargetFrame;
-+ RECT TargetRect;
-+ SIZE ConstrictionSize;
-+ UINT StreamingFlags;
-+ DXVA2_AYUVSample16 BackgroundColor;
-+ DXVA2_ExtendedFormat DestFormat;
-+ DXVA2_ProcAmpValues ProcAmpValues;
-+ DXVA2_Fixed32 Alpha;
-+ DXVA2_FilterValues NoiseFilterLuma;
-+ DXVA2_FilterValues NoiseFilterChroma;
-+ DXVA2_FilterValues DetailFilterLuma;
-+ DXVA2_FilterValues DetailFilterChroma;
-+ DWORD DestData;
-+} DXVA2_VideoProcessBltParams;
-+
-+#ifdef _D3D9_H_
-+typedef struct _DXVA2_VideoProcessorCaps {
-+ UINT DeviceCaps;
-+ D3DPOOL InputPool;
-+ UINT NumForwardRefSamples;
-+ UINT NumBackwardRefSamples;
-+ UINT Reserved;
-+ UINT DeinterlaceTechnology;
-+ UINT ProcAmpControlCaps;
-+ UINT VideoProcessorOperations;
-+ UINT NoiseFilterTechnology;
-+ UINT DetailFilterTechnology;
-+} DXVA2_VideoProcessorCaps;
-+#endif
-+
-+cpp_quote("/* deinterlacing capabilities */")
-+cpp_quote("#define DXVA2_DeinterlaceTech_Unknown 0x0")
-+cpp_quote("#define DXVA2_DeinterlaceTech_BOBLineReplicate 0x1")
-+cpp_quote("#define DXVA2_DeinterlaceTech_BOBVerticalStretch 0x2")
-+cpp_quote("#define DXVA2_DeinterlaceTech_BOBVerticalStretch4Tap 0x4")
-+cpp_quote("#define DXVA2_DeinterlaceTech_MedianFiltering 0x8")
-+cpp_quote("#define DXVA2_DeinterlaceTech_EdgeFiltering 0x10")
-+cpp_quote("#define DXVA2_DeinterlaceTech_FieldAdaptive 0x20")
-+cpp_quote("#define DXVA2_DeinterlaceTech_PixelAdaptive 0x40")
-+cpp_quote("#define DXVA2_DeinterlaceTech_MotionVectorSteered 0x80")
-+cpp_quote("#define DXVA2_DeinterlaceTech_InverseTelecine 0x100")
-+cpp_quote("#define DXVA2_DeinterlaceTech_Mask 0x1FF")
-+
-+cpp_quote("/* VideoProcessor capabilities */")
-+cpp_quote("#define DXVA2_VideoProcess_None 0x0")
-+cpp_quote("#define DXVA2_VideoProcess_YUV2RGB 0x1")
-+cpp_quote("#define DXVA2_VideoProcess_StretchX 0x2")
-+cpp_quote("#define DXVA2_VideoProcess_StretchY 0x4")
-+cpp_quote("#define DXVA2_VideoProcess_AlphaBlend 0x8")
-+cpp_quote("#define DXVA2_VideoProcess_SubRects 0x10")
-+cpp_quote("#define DXVA2_VideoProcess_SubStreams 0x20")
-+cpp_quote("#define DXVA2_VideoProcess_SubStreamsExtended 0x40")
-+cpp_quote("#define DXVA2_VideoProcess_YUV2RGBExtended 0x80")
-+cpp_quote("#define DXVA2_VideoProcess_AlphaBlendExtended 0x100")
-+cpp_quote("#define DXVA2_VideoProcess_Constriction 0x200")
-+cpp_quote("#define DXVA2_VideoProcess_NoiseFilter 0x400")
-+cpp_quote("#define DXVA2_VideoProcess_DetailFilter 0x800")
-+cpp_quote("#define DXVA2_VideoProcess_PlanarAlpha 0x1000")
-+cpp_quote("#define DXVA2_VideoProcess_LinearScaling 0x2000")
-+cpp_quote("#define DXVA2_VideoProcess_GammaCompensated 0x4000")
-+cpp_quote("#define DXVA2_VideoProcess_MaintainsOriginalFieldData 0x8000")
-+cpp_quote("#define DXVA2_VideoProcess_Mask 0xFFFF")
-+
-+cpp_quote("/* SampleData */")
-+enum
-+{
-+ DXVA2_SampleData_RFF = 1,
-+ DXVA2_SampleData_TFF = 2,
-+ DXVA2_SampleData_RFF_TFF_Present = 4,
-+ DXVA2_SampleData_Mask = 0xFFFF
-+};
-+
-+#ifdef _D3D9_H_
-+typedef struct _DXVA2_VideoSample {
-+ REFERENCE_TIME Start;
-+ REFERENCE_TIME End;
-+ DXVA2_ExtendedFormat SampleFormat;
-+ IDirect3DSurface9* SrcSurface;
-+ RECT SrcRect;
-+ RECT DstRect;
-+ DXVA2_AYUVSample8 Pal[16];
-+ DXVA2_Fixed32 PlanarAlpha;
-+ DWORD SampleData;
-+} DXVA2_VideoSample;
-+#endif
-+
- cpp_quote("/* Constants */")
- cpp_quote("")
- cpp_quote("#define DXVA2_VideoDecoderRenderTarget 0")
-@@ -385,13 +426,13 @@ cpp_quote("#define DXVA2_BitStreamDateBu
- cpp_quote("#define DXVA2_MotionVectorBuffer 7")
- cpp_quote("#define DXVA2_FilmGrainBuffer 8")
- cpp_quote("")
--cpp_quote("__forceinline const DXVA2_Fixed32 DXVA2_Fixed32OpaqueAlpha (void) {")
-+cpp_quote("__forceinline DXVA2_Fixed32 DXVA2_Fixed32OpaqueAlpha (void) {")
- cpp_quote(" DXVA2_Fixed32 f32;")
- cpp_quote(" f32.ll = 0 + (1 << 16);")
- cpp_quote(" return f32;")
- cpp_quote("}")
- cpp_quote("")
--cpp_quote("__forceinline const DXVA2_Fixed32 DXVA2_Fixed32TransparentAlpha (void) {")
-+cpp_quote("__forceinline DXVA2_Fixed32 DXVA2_Fixed32TransparentAlpha (void) {")
- cpp_quote(" DXVA2_Fixed32 f32;")
- cpp_quote(" f32.ll = 0;")
- cpp_quote(" return f32;")
-@@ -481,4 +522,84 @@ interface IDirectXVideoDecoderService :
- [in] UINT NumRenderTargets, [out] IDirectXVideoDecoder **ppDecode);
- }
-
-+[
-+ object,
-+ uuid(8c3a39f0-916e-4690-804f-4c8001355d25),
-+ local
-+]
-+interface IDirectXVideoProcessor : IUnknown
-+{
-+ HRESULT GetVideoProcessorService([out] IDirectXVideoProcessorService** ppService);
-+
-+ HRESULT GetCreationParameters(
-+ [out] GUID* pDeviceGuid,
-+ [out] DXVA2_VideoDesc* pVideoDesc,
-+ [out] D3DFORMAT* pRenderTargetFormat,
-+ [out] UINT* pMaxNumSubStreams);
-+ HRESULT GetVideoProcessorCaps([out] DXVA2_VideoProcessorCaps* pCaps);
-+ HRESULT GetProcAmpRange(
-+ [in] UINT ProcAmpCap,
-+ [out] DXVA2_ValueRange* pRange);
-+ HRESULT GetFilterPropertyRange(
-+ [in] UINT FilterSetting,
-+ [out] DXVA2_ValueRange* pRange);
-+ HRESULT VideoProcessBlt(
-+ [in] IDirect3DSurface9* pRenderTarget,
-+ [in] const DXVA2_VideoProcessBltParams* pBltParams,
-+ [in] const DXVA2_VideoSample* pSamples,
-+ [in] UINT NumSamples,
-+ [out] HANDLE* pHandleComplete);
-+};
-+
-+[
-+ object,
-+ uuid(fc51a552-d5e7-11d9-af55-00054e43ff02),
-+ local
-+]
-+interface IDirectXVideoProcessorService : IDirectXVideoAccelerationService
-+{
-+ HRESULT RegisterVideoProcessorSoftwareDevice([in] void* pCallbacks);
-+
-+ HRESULT GetVideoProcessorDeviceGuids(
-+ [in] const DXVA2_VideoDesc* pVideoDesc,
-+ [out] UINT* pCount,
-+ [out] GUID** pGuids);
-+ HRESULT GetVideoProcessorRenderTargets(
-+ [in] REFGUID VideoProcDeviceGuid,
-+ [in] const DXVA2_VideoDesc* pVideoDesc,
-+ [out] UINT* pCount,
-+ [out] D3DFORMAT** pFormats);
-+ HRESULT GetVideoProcessorSubStreamFormats(
-+ [in] REFGUID VideoProcDeviceGuid,
-+ [in] const DXVA2_VideoDesc* pVideoDesc,
-+ [in] D3DFORMAT RenderTargetFormat,
-+ [out] UINT* pCount,
-+ [out] D3DFORMAT** pFormats);
-+ HRESULT GetVideoProcessorCaps(
-+ [in] REFGUID VideoProcDeviceGuid,
-+ [in] const DXVA2_VideoDesc* pVideoDesc,
-+ [in] D3DFORMAT RenderTargetFormat,
-+ [out] DXVA2_VideoProcessorCaps* pCaps);
-+ HRESULT GetProcAmpRange(
-+ [in] REFGUID VideoProcDeviceGuid,
-+ [in] const DXVA2_VideoDesc* pVideoDesc,
-+ [in] D3DFORMAT RenderTargetFormat,
-+ [in] UINT ProcAmpCap,
-+ [out] DXVA2_ValueRange* pRange);
-+ HRESULT GetFilterPropertyRange(
-+ [in] REFGUID VideoProcDeviceGuid,
-+ [in] const DXVA2_VideoDesc* pVideoDesc,
-+ [in] D3DFORMAT RenderTargetFormat,
-+ [in] UINT FilterSetting,
-+ [out] DXVA2_ValueRange* pRange);
-+ HRESULT CreateVideoProcessor(
-+ [in] REFGUID VideoProcDeviceGuid,
-+ [in] const DXVA2_VideoDesc* pVideoDesc,
-+ [in] D3DFORMAT RenderTargetFormat,
-+ [in] UINT MaxNumSubStreams,
-+ [out] IDirectXVideoProcessor** ppVidProcess);
-+}
-+
- cpp_quote("#endif /* _D3D9_H_ */")
-+
-+cpp_quote("#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */")
=====================================
contrib/src/d3d9/rules.mak
=====================================
@@ -1,17 +1,10 @@
# generate Direct3D9 temporary include
-ifdef HAVE_CROSS_COMPILE
-IDL_INC_PATH = -I/usr/include/wine/windows/ -I/usr/include/wine/wine/windows/
-else
-#ugly way to get the default location of standard idl files
-IDL_INC_PATH = -I/`echo $(MSYSTEM) | tr A-Z a-z`/$(BUILD)/include
-endif
-
-D3D9CAPS_COMMIT_ID := 477108e5706e73421634436c21cb76e1795b3609
-DXVA2API_COMMIT_ID := 67bb96f54d720ca9e5aaa5da7d385348e0bfac31
+D3D9CAPS_COMMIT_ID := 49e9a673b36a1241747bf3ea95d040f127753f81
+DXVA2API_COMMIT_ID := 45def5d7a10885dfb87af3c7996f8de7197183b5
D3D9CAPS_H_URL := http://sourceforge.net/p/mingw-w64/mingw-w64/ci/$(D3D9CAPS_COMMIT_ID)/tree/mingw-w64-headers/direct-x/include/d3d9caps.h?format=raw
D3D9_H_URL := http://sourceforge.net/p/mingw-w64/mingw-w64/ci/$(D3D9CAPS_COMMIT_ID)/tree/mingw-w64-headers/direct-x/include/d3d9.h?format=raw
-DXVA2API_IDL_URL := https://sourceforge.net/p/mingw-w64/mingw-w64/ci/$(DXVA2API_COMMIT_ID)/tree/mingw-w64-headers/include/dxva2api.idl?format=raw
+DXVA2API_H_URL := https://sourceforge.net/p/mingw-w64/mingw-w64/ci/$(DXVA2API_COMMIT_ID)/tree/mingw-w64-headers/include/dxva2api.h?format=raw
DST_D3D9CAPS_H = $(PREFIX)/include/d3d9caps.h
DST_D3D9_H = $(PREFIX)/include/d3d9.h
DST_DXVA2API_H = $(PREFIX)/include/dxva2api.h
@@ -21,35 +14,33 @@ ifdef HAVE_WIN32
ifndef HAVE_VISUALSTUDIO
PKGS += d3d9
endif
+ifeq ($(call mingw_at_least, 8), true)
+PKGS_FOUND += d3d9
+endif # MINGW 8
endif
$(TARBALLS)/d3d9caps.h:
- $(call download_pkg,$(D3D9CAPS_H_URL),d3d9)
+ $(call download,$(D3D9CAPS_H_URL))
$(TARBALLS)/d3d9.h:
- $(call download_pkg,$(D3D9_H_URL),d3d9)
+ $(call download,$(D3D9_H_URL))
-$(TARBALLS)/dxva2api.idl:
- $(call download_pkg,$(DXVA2API_IDL_URL),d3d9)
+$(TARBALLS)/dxva2api.h:
+ $(call download_pkg,$(DXVA2API_H_URL),d3d9)
-.sum-d3d9: $(TARBALLS)/d3d9caps.h $(TARBALLS)/d3d9.h $(TARBALLS)/dxva2api.idl
+.sum-d3d9: $(TARBALLS)/d3d9caps.h $(TARBALLS)/d3d9.h $(TARBALLS)/dxva2api.h
$(DST_D3D9CAPS_H): $(TARBALLS)/d3d9caps.h .sum-d3d9
mkdir -p -- "$(PREFIX)/include/"
- (cd $(TARBALLS) && patch -fp1 -o $@) < $(SRC)/d3d9/d3d9caps.patch
+ cp $(TARBALLS)/d3d9caps.h $@
$(DST_D3D9_H): $(TARBALLS)/d3d9.h .sum-d3d9
mkdir -p -- "$(PREFIX)/include/"
(cd $(TARBALLS) && patch -fp1 -o $@) < $(SRC)/d3d9/d3d9.patch
-dxva2api/dxva2api.idl: .sum-d3d9
- mkdir -p dxva2api
- cp $(TARBALLS)/dxva2api.idl $@
- patch -fp1 < $(SRC)/d3d9/dxva2api.patch
-
-$(DST_DXVA2API_H): dxva2api/dxva2api.idl
+$(DST_DXVA2API_H): .sum-d3d9
mkdir -p -- "$(PREFIX)/include/"
- $(WIDL) -DBOOL=WINBOOL -D_D3D9_H_ -D__C89_NAMELESS $(IDL_INCLUDES) -h -o $@ $<
+ cp $(TARBALLS)/dxva2api.h $@
.d3d9caps: $(DST_D3D9CAPS_H)
touch $@
=====================================
contrib/src/ffmpeg/rules.mak
=====================================
@@ -78,6 +78,13 @@ else
FFMPEGCONF += --disable-encoders --disable-muxers
endif
+# Postproc
+MAYBE_POSTPROC =
+ifdef GPL
+FFMPEGCONF += --enable-gpl --enable-postproc
+MAYBE_POSTPROC = libpostproc
+endif
+
# Small size
ifdef WITH_OPTIMIZATION
ifdef ENABLE_SMALL
@@ -220,7 +227,7 @@ endif
# Build
PKGS += ffmpeg
-ifeq ($(call need_pkg,"libavcodec >= $(FFMPEG_LAVC_MIN) libavformat >= 53.21.0 libswscale"),)
+ifeq ($(call need_pkg,"libavcodec >= $(FFMPEG_LAVC_MIN) libavformat >= 53.21.0 libswscale $(MAYBE_POSTPROC)"),)
PKGS_FOUND += ffmpeg
endif
=====================================
contrib/src/postproc/rules.mak deleted
=====================================
@@ -1,137 +0,0 @@
-# POSTPROC
-
-POSTPROC_URL := http://git.videolan.org/git/libpostproc.git
-POSTPROC_HASH := 3b7053f46dbfe4662063345245cb00b6acbbe969
-POSTPROC_VERSION := $(POSTPROC_HASH)
-
-POSTPROCCONF = \
- --cc="$(CC)" \
- --disable-debug \
- --enable-gpl \
- --enable-postproc
-
-DEPS_postproc = ffmpeg
-
-ifdef ENABLE_SMALL
-POSTPROCCONF += --enable-small
-endif
-ifdef HAVE_ARMV7A
-POSTPROCCONF += --enable-thumb
-endif
-
-ifdef HAVE_CROSS_COMPILE
-POSTPROCCONF += --enable-cross-compile
-ifndef HAVE_DARWIN_OS
-POSTPROCCONF += --cross-prefix=$(HOST)-
-endif
-endif
-
-# ARM stuff
-ifeq ($(ARCH),arm)
-POSTPROCCONF += --disable-runtime-cpudetect --arch=arm
-ifdef HAVE_ARMV7A
-POSTPROCCONF += --cpu=cortex-a8
-endif
-ifdef HAVE_NEON
-POSTPROCCONF += --enable-neon
-endif
-endif
-
-# ARM64 stuff
-ifeq ($(ARCH),aarch64)
-POSTPROCCONF += --arch=aarch64
-endif
-
-# MIPS stuff
-ifeq ($(ARCH),mipsel)
-POSTPROCCONF += --arch=mips
-endif
-ifeq ($(ARCH),mips64el)
-POSTPROCCONF += --arch=mips64
-endif
-
-# RISC-V stuff
-ifneq ($(findstring $(ARCH),riscv32 riscv64),)
-POSTPROCCONF += --arch=riscv
-endif
-
-# x86 stuff
-ifeq ($(ARCH),i386)
-POSTPROCCONF += --arch=x86
-endif
-
-# x86_64 stuff
-ifeq ($(ARCH),x86_64)
-POSTPROCCONF += --arch=x64_64
-endif
-
-# Darwin
-ifdef HAVE_DARWIN_OS
-POSTPROCCONF += --arch=$(ARCH) --target-os=darwin
-endif
-ifeq ($(ARCH),x86_64)
-POSTPROCCONF += --cpu=core2
-endif
-ifdef HAVE_IOS
-ifeq ($(ARCH),arm)
-POSTPROCCONF += --as="$(AS)"
-endif
-endif
-
-# Linux
-ifdef HAVE_LINUX
-POSTPROCCONF += --target-os=linux --enable-pic
-endif
-
-ifdef HAVE_ANDROID
-ifeq ($(ANDROID_ABI), x86)
-POSTPROCCONF += --disable-mmx --disable-mmxext
-endif
-endif
-
-# Windows
-ifdef HAVE_WIN32
-POSTPROCCONF += --target-os=mingw32
-ifeq ($(ARCH),x86_64)
-POSTPROCCONF += --cpu=athlon64 --arch=x86_64
-endif
-ifeq ($(ARCH),i386)
-POSTPROCCONF+= --cpu=i686 --arch=x86
-endif
-else
-POSTPROCCONF += --enable-pthreads
-endif
-
-ifdef HAVE_SOLARIS
-POSTPROCCONF += --enable-pic
-endif
-
-# Build
-
-ifdef GPL
-PKGS += postproc
-endif
-ifeq ($(call need_pkg,"libpostproc"),)
-PKGS_FOUND += postproc
-endif
-
-$(TARBALLS)/postproc-$(POSTPROC_VERSION).tar.xz:
- $(call download_git,$(POSTPROC_URL),,$(POSTPROC_HASH))
-
-.sum-postproc: $(TARBALLS)/postproc-$(POSTPROC_VERSION).tar.xz
- $(call check_githash,$(POSTPROC_HASH))
- touch $@
-
-postproc: postproc-$(POSTPROC_VERSION).tar.xz .sum-postproc
- $(UNPACK)
- $(APPLY) $(SRC)/postproc/win-pic.patch
- $(MOVE)
-
-.postproc: postproc
- $(REQUIRE_GPL)
- cd $< && $(HOSTVARS) ./configure \
- --extra-cflags="$(EXTRA_CFLAGS)" \
- --extra-ldflags="$(LDFLAGS)" $(POSTPROCCONF) \
- --prefix="$(PREFIX)" --enable-static --disable-shared
- cd $< && $(MAKE) install-libs install-headers
- touch $@
=====================================
contrib/src/postproc/win-pic.patch deleted
=====================================
@@ -1,20 +0,0 @@
-diff -urN postproc-orig/configure postproc/configure
---- postproc-orig/configure 2012-08-21 23:27:39.000000000 +0300
-+++ postproc/configure 2018-02-26 10:36:48.956225615 +0200
-@@ -2419,8 +2419,14 @@
- enable_pic() {
- enable pic
- add_cppflags -DPIC
-- add_cflags -fPIC
-- add_asflags -fPIC
-+ case "$target_os" in
-+ mingw*|cygwin*|win*)
-+ ;;
-+ *)
-+ add_cflags -fPIC
-+ add_asflags -fPIC
-+ ;;
-+ esac
- }
-
- enabled pic && enable_pic
=====================================
modules/hw/d3d11/d3d11_deinterlace.c
=====================================
@@ -307,7 +307,7 @@ static picture_t *NewOutputPicture( filter_t *p_filter )
fmt.i_width = dstDesc.Width;
fmt.i_height = dstDesc.Height;
if (AllocateTextures(p_filter, &p_filter->p_sys->d3d_dev, cfg,
- &fmt, false, 1, pic->p_sys->texture) != VLC_SUCCESS)
+ &fmt, false, false, 1, pic->p_sys->texture) != VLC_SUCCESS)
{
free(pic->p_sys);
return NULL;
=====================================
modules/video_chroma/d3d11_fmt.c
=====================================
@@ -599,7 +599,8 @@ const d3d_format_t *FindD3D11Format(vlc_object_t *o,
#undef AllocateTextures
int AllocateTextures( vlc_object_t *obj, d3d11_device_t *d3d_dev,
- const d3d_format_t *cfg, const video_format_t *fmt, bool for_decoder,
+ const d3d_format_t *cfg, const video_format_t *fmt,
+ bool for_decoder, bool shared,
unsigned pool_size, ID3D11Texture2D *textures[] )
{
plane_t planes[PICTURE_PLANE_MAX];
@@ -622,6 +623,8 @@ int AllocateTextures( vlc_object_t *obj, d3d11_device_t *d3d_dev,
texDesc.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE;
}
texDesc.ArraySize = pool_size;
+ if (shared)
+ texDesc.MiscFlags |= D3D11_RESOURCE_MISC_SHARED | D3D11_RESOURCE_MISC_SHARED_NTHANDLE;
const vlc_chroma_description_t *p_chroma_desc = vlc_fourcc_GetChromaDescription( fmt->i_chroma );
if( !p_chroma_desc )
=====================================
modules/video_chroma/d3d11_fmt.h
=====================================
@@ -159,8 +159,9 @@ static inline const d3d_format_t *D3D11_RenderFormat(DXGI_FORMAT opaque, bool gp
}
int AllocateTextures(vlc_object_t *, d3d11_device_t *, const d3d_format_t *,
- const video_format_t *, bool, unsigned pool_size, ID3D11Texture2D *textures[]);
-#define AllocateTextures(a,b,c,d,e,f,g) AllocateTextures(VLC_OBJECT(a),b,c,d,e,f,g)
+ const video_format_t *, bool decoder, bool shared,
+ unsigned pool_size, ID3D11Texture2D *textures[]);
+#define AllocateTextures(a,b,c,d,e,f,g,h) AllocateTextures(VLC_OBJECT(a),b,c,d,e,f,g,h)
#ifndef NDEBUG
void D3D11_LogProcessorSupport(vlc_object_t*, ID3D11VideoProcessorEnumerator*);
=====================================
modules/video_output/win32/direct3d11.c
=====================================
@@ -39,7 +39,7 @@
#define COBJMACROS
#include <initguid.h>
-#include <d3d11.h>
+#include <d3d11_1.h>
#ifdef HAVE_DXGI1_6_H
# include <dxgi1_6.h>
#else
@@ -155,6 +155,7 @@ struct vout_display_sys_t
#endif
picture_sys_t stagingSys;
+ HANDLE sharedHandle;
ID3D11RenderTargetView *d3drenderTargetView;
ID3D11DepthStencilView *d3ddepthStencilView;
@@ -360,6 +361,7 @@ static int Open(vlc_object_t *object)
}
else
vd->info.subpicture_chromas = NULL;
+ sys->sharedHandle = INVALID_HANDLE_VALUE;
vd->pool = Pool;
vd->prepare = Prepare;
@@ -435,7 +437,7 @@ static picture_pool_t *Pool(vout_display_t *vd, unsigned pool_size)
/* only provide enough for the filters, we can still do direct rendering */
slices = __MIN(slices, 6);
- if (AllocateTextures(vd, &sys->d3d_dev, sys->pool_d3dfmt, &sys->pool_fmt, true, slices, textures))
+ if (AllocateTextures(vd, &sys->d3d_dev, sys->pool_d3dfmt, &sys->pool_fmt, true, false, slices, textures))
goto error;
pictures = calloc(pool_size, sizeof(*pictures));
@@ -1009,6 +1011,51 @@ static void CallUpdateRects(vout_display_t *vd)
}
}
+static int CreateStaging(vout_display_t *vd, ID3D11DeviceContext *shared_context)
+{
+ vout_display_sys_t *sys = vd->sys;
+ ID3D11Texture2D *textures[D3D11_MAX_SHADER_VIEW] = {0};
+ video_format_t surface_fmt = sys->pool_fmt;
+ surface_fmt.i_width = sys->picQuad.i_width;
+ surface_fmt.i_height = sys->picQuad.i_height;
+
+ if (AllocateTextures(vd, &sys->d3d_dev, sys->picQuad.formatInfo, &surface_fmt,
+ false, shared_context != NULL, 1, textures))
+ {
+ msg_Err(vd, "Failed to allocate the staging texture");
+ return VLC_EGENERIC;
+ }
+
+ sys->picQuad.resourceCount = DxgiResourceCount(sys->picQuad.formatInfo);
+ if (D3D11_AllocateShaderView(vd, sys->d3d_dev.d3ddevice, sys->picQuad.formatInfo,
+ textures, 0, sys->stagingSys.resourceView))
+ {
+ msg_Err(vd, "Failed to allocate the staging shader view");
+ return VLC_EGENERIC;
+ }
+
+ for (unsigned plane = 0; plane < D3D11_MAX_SHADER_VIEW; plane++)
+ sys->stagingSys.texture[plane] = textures[plane];
+
+
+ if (shared_context)
+ {
+ assert(sys->sharedHandle == INVALID_HANDLE_VALUE);
+ HRESULT hr;
+ IDXGIResource1* sharedResource = NULL;
+ ID3D11Resource_QueryInterface(sys->stagingSys.resource[0], &IID_IDXGIResource1, (void**)&sharedResource);
+ hr = IDXGIResource1_CreateSharedHandle(sharedResource, NULL, DXGI_SHARED_RESOURCE_READ|DXGI_SHARED_RESOURCE_WRITE, NULL, &sys->sharedHandle);
+ IDXGIResource1_Release(sharedResource);
+ if (FAILED(hr))
+ {
+ msg_Err(vd, "Failed to get the shared handle");
+ return VLC_EGENERIC;
+ }
+ }
+
+ return VLC_SUCCESS;
+}
+
static void Prepare(vout_display_t *vd, picture_t *picture, subpicture_t *subpicture)
{
vout_display_sys_t *sys = vd->sys;
@@ -1073,6 +1120,45 @@ static void Prepare(vout_display_t *vd, picture_t *picture, subpicture_t *subpic
D3D11_TEXTURE2D_DESC srcDesc;
ID3D11Texture2D_GetDesc(p_sys->texture[KNOWN_DXGI_INDEX], &srcDesc);
+ ID3D11DeviceContext* copyContext = sys->d3d_dev.d3dcontext;
+ ID3D11Resource* copyResource = p_sys->resource[KNOWN_DXGI_INDEX];
+
+ if (is_d3d11_opaque(picture->format.i_chroma) && sys->d3d_dev.d3dcontext != p_sys->context)
+ {
+ if (sys->stagingSys.texture[0] == NULL)
+ {
+ sys->legacy_shader = true; // force using staging
+ int ret = CreateStaging(vd, p_sys->context);
+ if (unlikely(ret != VLC_SUCCESS))
+ {
+ if (is_d3d11_opaque(picture->format.i_chroma))
+ d3d11_device_unlock( &sys->d3d_dev );
+ return;
+ }
+ }
+
+ HRESULT hr;
+
+ ID3D11Device *psysDev;
+ ID3D11Device1 *d3d11VLC1;
+ ID3D11DeviceContext_GetDevice(p_sys->context, &psysDev);
+ hr = ID3D11Device_QueryInterface(psysDev, &IID_ID3D11Device1, (void**)&d3d11VLC1);
+ if (SUCCEEDED(hr))
+ {
+ hr = ID3D11Device1_OpenSharedResource1(d3d11VLC1, sys->sharedHandle, &IID_ID3D11Resource, (void**)©Resource);
+ ID3D11Device1_Release(d3d11VLC1);
+ }
+ ID3D11Device_Release(psysDev);
+ if (FAILED(hr))
+ {
+ if (is_d3d11_opaque(picture->format.i_chroma))
+ d3d11_device_unlock( &sys->d3d_dev );
+ return;
+ }
+
+ copyContext = p_sys->context;
+ }
+
if (!is_d3d11_opaque(picture->format.i_chroma) || sys->legacy_shader) {
D3D11_TEXTURE2D_DESC texDesc;
if (!is_d3d11_opaque(picture->format.i_chroma))
@@ -1085,8 +1171,8 @@ static void Prepare(vout_display_t *vd, picture_t *picture, subpicture_t *subpic
.right = __MIN(srcDesc.Width, texDesc.Width),
.back = 1,
};
- ID3D11DeviceContext_CopySubresourceRegion(sys->d3d_dev.d3dcontext,
- sys->stagingSys.resource[KNOWN_DXGI_INDEX],
+ ID3D11DeviceContext_CopySubresourceRegion(copyContext,
+ copyResource,
0, 0, 0, 0,
p_sys->resource[KNOWN_DXGI_INDEX],
p_sys->slice_index, &box);
@@ -1113,6 +1199,10 @@ static void Prepare(vout_display_t *vd, picture_t *picture, subpicture_t *subpic
UpdateSize(vd);
}
}
+
+ if (copyResource != p_sys->resource[KNOWN_DXGI_INDEX])
+ // shared resource
+ ID3D11Resource_Release(copyResource);
}
if (subpicture) {
@@ -1915,27 +2005,9 @@ static int Direct3D11CreateFormatResources(vout_display_t *vd, const video_forma
if (!is_d3d11_opaque(fmt->i_chroma) || sys->legacy_shader)
{
/* we need a staging texture */
- ID3D11Texture2D *textures[D3D11_MAX_SHADER_VIEW] = {0};
- video_format_t surface_fmt = sys->pool_fmt;
- surface_fmt.i_width = sys->picQuad.i_width;
- surface_fmt.i_height = sys->picQuad.i_height;
-
- if (AllocateTextures(vd, &sys->d3d_dev, sys->picQuad.formatInfo, &surface_fmt, false, 1, textures))
- {
- msg_Err(vd, "Failed to allocate the staging texture");
- return VLC_EGENERIC;
- }
-
- sys->picQuad.resourceCount = DxgiResourceCount(sys->picQuad.formatInfo);
- if (D3D11_AllocateShaderView(vd, sys->d3d_dev.d3ddevice, sys->picQuad.formatInfo,
- textures, 0, sys->stagingSys.resourceView))
- {
- msg_Err(vd, "Failed to allocate the staging shader view");
- return VLC_EGENERIC;
- }
-
- for (unsigned plane = 0; plane < D3D11_MAX_SHADER_VIEW; plane++)
- sys->stagingSys.texture[plane] = textures[plane];
+ int ret = CreateStaging(vd, NULL);
+ if (ret != VLC_SUCCESS)
+ return ret;
}
#endif
@@ -2132,6 +2204,8 @@ static void Direct3D11DestroyResources(vout_display_t *vd)
sys->d3dregion_count = 0;
ReleasePictureSys(&sys->stagingSys);
+ CloseHandle(sys->sharedHandle);
+ sys->sharedHandle = INVALID_HANDLE_VALUE;
if (sys->tonemapProc != NULL)
{
@@ -2263,7 +2337,7 @@ static int Direct3D11MapSubpicture(vout_display_t *vd, int *subpicture_region_co
if (unlikely(d3dquad==NULL)) {
continue;
}
- if (AllocateTextures(vd, &sys->d3d_dev, sys->d3dregion_format, &r->p_picture->format, false, 1, d3dquad->picSys.texture)) {
+ if (AllocateTextures(vd, &sys->d3d_dev, sys->d3dregion_format, &r->p_picture->format, false, false, 1, d3dquad->picSys.texture)) {
msg_Err(vd, "Failed to allocate %dx%d texture for OSD",
r->fmt.i_visible_width, r->fmt.i_visible_height);
for (int j=0; j<D3D11_MAX_SHADER_VIEW; j++)
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/74de0fda0bec6507ba1e305f7943150140f9dc44...3e1083e7b5510aa9ca955793d01e226a673880e0
--
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/74de0fda0bec6507ba1e305f7943150140f9dc44...3e1083e7b5510aa9ca955793d01e226a673880e0
You're receiving this email because of your account on code.videolan.org.
VideoLAN code repository instance
More information about the vlc-commits
mailing list