Updated CMakeLists.txt and configure.asc/script so that it checks for the required Windows SDK version before it enables the d3d12 renderer. Also fixed reported warnings in some builds.
parent
5abd676917
commit
7a335df9cf
|
@ -1591,7 +1591,12 @@ elseif(WINDOWS)
|
||||||
|
|
||||||
check_include_file(d3d9.h HAVE_D3D_H)
|
check_include_file(d3d9.h HAVE_D3D_H)
|
||||||
check_include_file(d3d11_1.h HAVE_D3D11_H)
|
check_include_file(d3d11_1.h HAVE_D3D11_H)
|
||||||
check_include_file(d3d12.h HAVE_D3D12_H)
|
check_c_source_compiles("
|
||||||
|
#include <winsdkver.h>
|
||||||
|
#include <sdkddkver.h>
|
||||||
|
#if WDK_NTDDI_VERSION > 0x0A000008
|
||||||
|
int main(int argc, char **argv) { return 0; }
|
||||||
|
#endif" HAVE_D3D12_H)
|
||||||
check_include_file(ddraw.h HAVE_DDRAW_H)
|
check_include_file(ddraw.h HAVE_DDRAW_H)
|
||||||
check_include_file(dsound.h HAVE_DSOUND_H)
|
check_include_file(dsound.h HAVE_DSOUND_H)
|
||||||
check_include_file(dinput.h HAVE_DINPUT_H)
|
check_include_file(dinput.h HAVE_DINPUT_H)
|
||||||
|
|
|
@ -25083,12 +25083,31 @@ if test "x$ac_cv_header_d3d11_1_h" = xyes; then :
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
ac_fn_c_check_header_mongrel "$LINENO" "d3d12.h" "ac_cv_header_d3d12_h" "$ac_includes_default"
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for d3d12 Windows SDK version" >&5
|
||||||
if test "x$ac_cv_header_d3d12_h" = xyes; then :
|
$as_echo_n "checking for d3d12 Windows SDK version... " >&6; }
|
||||||
|
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||||
|
/* end confdefs.h. */
|
||||||
|
|
||||||
|
#include <winsdkver.h>
|
||||||
|
#include <sdkddkver.h>
|
||||||
|
#if WDK_NTDDI_VERSION < 0x0A000008
|
||||||
|
asdf
|
||||||
|
#endif
|
||||||
|
|
||||||
|
int
|
||||||
|
main ()
|
||||||
|
{
|
||||||
|
|
||||||
|
;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
_ACEOF
|
||||||
|
if ac_fn_c_try_compile "$LINENO"; then :
|
||||||
have_d3d12=yes
|
have_d3d12=yes
|
||||||
fi
|
fi
|
||||||
|
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: have_d3d12" >&5
|
||||||
|
$as_echo "have_d3d12" >&6; }
|
||||||
ac_fn_c_check_header_mongrel "$LINENO" "ddraw.h" "ac_cv_header_ddraw_h" "$ac_includes_default"
|
ac_fn_c_check_header_mongrel "$LINENO" "ddraw.h" "ac_cv_header_ddraw_h" "$ac_includes_default"
|
||||||
if test "x$ac_cv_header_ddraw_h" = xyes; then :
|
if test "x$ac_cv_header_ddraw_h" = xyes; then :
|
||||||
have_ddraw=yes
|
have_ddraw=yes
|
||||||
|
|
10
configure.ac
10
configure.ac
|
@ -3264,7 +3264,15 @@ CheckDIRECTX()
|
||||||
if test x$enable_directx = xyes; then
|
if test x$enable_directx = xyes; then
|
||||||
AC_CHECK_HEADER(d3d9.h, have_d3d=yes)
|
AC_CHECK_HEADER(d3d9.h, have_d3d=yes)
|
||||||
AC_CHECK_HEADER(d3d11_1.h, have_d3d11=yes)
|
AC_CHECK_HEADER(d3d11_1.h, have_d3d11=yes)
|
||||||
AC_CHECK_HEADER(d3d12.h, have_d3d12=yes)
|
AC_MSG_CHECKING(for d3d12 Windows SDK version)
|
||||||
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
||||||
|
#include <winsdkver.h>
|
||||||
|
#include <sdkddkver.h>
|
||||||
|
#if WDK_NTDDI_VERSION < 0x0A000008
|
||||||
|
asdf
|
||||||
|
#endif
|
||||||
|
]],[])], [have_d3d12=yes],[])
|
||||||
|
AC_MSG_RESULT(have_d3d12)
|
||||||
AC_CHECK_HEADER(ddraw.h, have_ddraw=yes)
|
AC_CHECK_HEADER(ddraw.h, have_ddraw=yes)
|
||||||
AC_CHECK_HEADER(dsound.h, have_dsound=yes)
|
AC_CHECK_HEADER(dsound.h, have_dsound=yes)
|
||||||
AC_CHECK_HEADER(dinput.h, have_dinput=yes)
|
AC_CHECK_HEADER(dinput.h, have_dinput=yes)
|
||||||
|
|
|
@ -713,13 +713,13 @@ D3D12_CreateDeviceResources(SDL_Renderer* renderer)
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
result = DXGIGetDebugInterfaceFunc(0, &SDL_IID_IDXGIDebug1, &data->dxgiDebug);
|
result = DXGIGetDebugInterfaceFunc(0, &SDL_IID_IDXGIDebug1, (void **)&data->dxgiDebug);
|
||||||
if (FAILED(result)) {
|
if (FAILED(result)) {
|
||||||
WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("DXGIGetDebugInterface1"), result);
|
WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("DXGIGetDebugInterface1"), result);
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
result = DXGIGetDebugInterfaceFunc(0, &SDL_IID_IDXGIInfoQueue, &dxgiInfoQueue);
|
result = DXGIGetDebugInterfaceFunc(0, &SDL_IID_IDXGIInfoQueue, (void **)&dxgiInfoQueue);
|
||||||
if (FAILED(result)) {
|
if (FAILED(result)) {
|
||||||
WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("DXGIGetDebugInterface1"), result);
|
WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("DXGIGetDebugInterface1"), result);
|
||||||
goto done;
|
goto done;
|
||||||
|
@ -1019,8 +1019,6 @@ done:
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef __WIN32__
|
|
||||||
|
|
||||||
static DXGI_MODE_ROTATION
|
static DXGI_MODE_ROTATION
|
||||||
D3D12_GetCurrentRotation()
|
D3D12_GetCurrentRotation()
|
||||||
{
|
{
|
||||||
|
@ -1028,8 +1026,6 @@ D3D12_GetCurrentRotation()
|
||||||
return DXGI_MODE_ROTATION_IDENTITY;
|
return DXGI_MODE_ROTATION_IDENTITY;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* __WIN32__ */
|
|
||||||
|
|
||||||
static BOOL
|
static BOOL
|
||||||
D3D12_IsDisplayRotated90Degrees(DXGI_MODE_ROTATION rotation)
|
D3D12_IsDisplayRotated90Degrees(DXGI_MODE_ROTATION rotation)
|
||||||
{
|
{
|
||||||
|
@ -1143,7 +1139,7 @@ D3D12_CreateSwapChain(SDL_Renderer * renderer, int w, int h)
|
||||||
|
|
||||||
IDXGIFactory_MakeWindowAssociation(data->dxgiFactory, windowinfo.info.win.window, DXGI_MWA_NO_WINDOW_CHANGES);
|
IDXGIFactory_MakeWindowAssociation(data->dxgiFactory, windowinfo.info.win.window, DXGI_MWA_NO_WINDOW_CHANGES);
|
||||||
|
|
||||||
result = IDXGISwapChain1_QueryInterface(swapChain, &SDL_IID_IDXGISwapChain4, &data->swapChain);
|
result = IDXGISwapChain1_QueryInterface(swapChain, &SDL_IID_IDXGISwapChain4, (void **)&data->swapChain);
|
||||||
if (FAILED(result)) {
|
if (FAILED(result)) {
|
||||||
WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("IDXGISwapChain1::QueryInterface"), result);
|
WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("IDXGISwapChain1::QueryInterface"), result);
|
||||||
goto done;
|
goto done;
|
||||||
|
@ -1267,7 +1263,7 @@ D3D12_CreateWindowSizeDependentResources(SDL_Renderer * renderer)
|
||||||
data->swapChain,
|
data->swapChain,
|
||||||
i,
|
i,
|
||||||
&SDL_IID_ID3D12Resource,
|
&SDL_IID_ID3D12Resource,
|
||||||
&data->renderTargets[i]
|
(void **) &data->renderTargets[i]
|
||||||
);
|
);
|
||||||
if (FAILED(result)) {
|
if (FAILED(result)) {
|
||||||
WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("IDXGISwapChain4::GetBuffer"), result);
|
WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("IDXGISwapChain4::GetBuffer"), result);
|
||||||
|
@ -1664,7 +1660,7 @@ D3D12_UpdateTextureInternal(D3D12_RenderData * rendererData, ID3D12Resource * te
|
||||||
result = ID3D12Resource_Map(rendererData->uploadBuffers[rendererData->currentUploadBuffer],
|
result = ID3D12Resource_Map(rendererData->uploadBuffers[rendererData->currentUploadBuffer],
|
||||||
0,
|
0,
|
||||||
NULL,
|
NULL,
|
||||||
&textureMemory
|
(void **)&textureMemory
|
||||||
);
|
);
|
||||||
if (FAILED(result)) {
|
if (FAILED(result)) {
|
||||||
SAFE_RELEASE(rendererData->uploadBuffers[rendererData->currentUploadBuffer]);
|
SAFE_RELEASE(rendererData->uploadBuffers[rendererData->currentUploadBuffer]);
|
||||||
|
@ -1926,7 +1922,7 @@ D3D12_LockTexture(SDL_Renderer * renderer, SDL_Texture * texture,
|
||||||
result = ID3D12Resource_Map(textureData->stagingBuffer,
|
result = ID3D12Resource_Map(textureData->stagingBuffer,
|
||||||
0,
|
0,
|
||||||
NULL,
|
NULL,
|
||||||
&textureMemory
|
(void **)&textureMemory
|
||||||
);
|
);
|
||||||
if (FAILED(result)) {
|
if (FAILED(result)) {
|
||||||
SAFE_RELEASE(rendererData->uploadBuffers[rendererData->currentUploadBuffer]);
|
SAFE_RELEASE(rendererData->uploadBuffers[rendererData->currentUploadBuffer]);
|
||||||
|
@ -2182,7 +2178,6 @@ D3D12_UpdateVertexBuffer(SDL_Renderer *renderer,
|
||||||
HRESULT result = S_OK;
|
HRESULT result = S_OK;
|
||||||
const int vbidx = rendererData->currentVertexBuffer;
|
const int vbidx = rendererData->currentVertexBuffer;
|
||||||
const UINT stride = sizeof(VertexPositionColor);
|
const UINT stride = sizeof(VertexPositionColor);
|
||||||
const UINT offset = 0;
|
|
||||||
UINT8* vertexBufferData = NULL;
|
UINT8* vertexBufferData = NULL;
|
||||||
D3D12_RANGE range;
|
D3D12_RANGE range;
|
||||||
|
|
||||||
|
@ -2205,7 +2200,7 @@ D3D12_UpdateVertexBuffer(SDL_Renderer *renderer,
|
||||||
return E_FAIL;
|
return E_FAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
result = ID3D12Resource_Map(rendererData->vertexBuffers[vbidx].resource, 0, &range, &vertexBufferData);
|
result = ID3D12Resource_Map(rendererData->vertexBuffers[vbidx].resource, 0, &range, (void **)&vertexBufferData);
|
||||||
if (FAILED(result)) {
|
if (FAILED(result)) {
|
||||||
return WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("ID3D12Resource::Map [vertex buffer]"), result);
|
return WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("ID3D12Resource::Map [vertex buffer]"), result);
|
||||||
}
|
}
|
||||||
|
@ -2810,7 +2805,7 @@ D3D12_RenderReadPixels(SDL_Renderer * renderer, const SDL_Rect * rect,
|
||||||
result = ID3D12Resource_Map(readbackBuffer,
|
result = ID3D12Resource_Map(readbackBuffer,
|
||||||
0,
|
0,
|
||||||
NULL,
|
NULL,
|
||||||
&textureMemory
|
(void **)&textureMemory
|
||||||
);
|
);
|
||||||
if (FAILED(result)) {
|
if (FAILED(result)) {
|
||||||
SAFE_RELEASE(readbackBuffer);
|
SAFE_RELEASE(readbackBuffer);
|
||||||
|
|
Loading…
Reference in New Issue