Supported Direct3D APIs for Windows Phone 8

July 21, 2014

Applies to: Windows Phone 8 and Windows Phone Silverlight 8.1 only

This topic describes the Direct3D APIs that are supported on Windows Phone 8.

This topic contains the following sections.

Direct3D APIs

The following table lists Direct3D APIs and indicates whether they are supported on Windows Phone.

API

Is supported

Notes

D3D11CreateDevice

Yes

D3D11CreateDeviceAndSwapChain

Yes

ID3D11Asynchronous

Yes

ID3D11AuthenticatedChannel

Yes

ID3D11BlendState

Yes

ID3D11BlendState1

Yes

ID3D11Buffer

Yes

ID3D11ClassInstance

Yes

ID3D11ClassLinkage

Yes

ID3D11CommandList

No

ID3D11ComputeShader

No

ID3D11Counter

Yes

ID3D11CryptoSession

Yes

ID3D11Debug

Yes

This interface can be used only on devices when the debugger is attached.

ID3D11DepthStencilState

Yes

ID3D11DepthStencilView

Yes

ID3D11Device

Yes

ID3D11Device1

Yes

ID3D11DeviceChild

Yes

ID3D11DeviceContext

Yes

ID3D11DeviceContext1

Yes

ID3D11DomainShader

No

ID3D11GeometryShader

No

ID3D11HullShader

No

ID3D11InfoQueue

Yes

This interface can be used only on devices when the debugger is attached.

ID3D11InputLayout

Yes

ID3D11PixelShader

Yes

ID3D11Predicate

Yes

ID3D11Query

Partially

Supports features included in feature level 9_3.

ID3D11RasterizerState

Yes

ID3D11RasterizerState1

Yes

ID3D11RenderTargetView

Yes

ID3D11Resource

Yes

ID3D11SamplerState

Yes

ID3D11ShaderResourceView

Yes

ID3D11Texture1D

Yes

ID3D11Texture2D

Yes

ID3D11Texture3D

Yes

ID3D11UnorderedAccessView

No

ID3D11VertexShader

Yes

ID3D11VideoContext

Yes

ID3D11VideoDecoder

Yes

ID3D11VideoDecoderOutputView

Yes

ID3D11VideoDevice

Yes

ID3D11VideoProcessor

Yes

ID3D11VideoProcessorEnumerator

Yes

ID3D11VideoProcessorInputView

Yes

ID3D11VideoProcessorOutputView

Yes

ID3D11View

Yes

DirectX Graphics Infrastructure (DXGI) APIs

The following table lists DXGI APIs and whether they are supported on the phone.

API

Is supported

Notes

CreateDXGIFactory

No

CreateDXGIFactory1

Yes

The IDXGIFactory::CreateSwapChain method does not support using a DXGI_SWAP_CHAIN_DESC structure with the DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY flag set.

DXGIGetDebugInterface

Yes

This interface can be used only on devices when the debugger is attached.

IDXGIAdapter

Yes

IDXGIAdapter1

Yes

IDXGIDebug

Yes

This interface can only be used on devices when the debugger is attached.

IDXGIDevice

Yes

IDXGIDevice1

Yes

IDXGIDevice2

Yes

IDXGIDeviceSubObject

Yes

IDXGIFactory

Partially

Interface support details

IDXGIFactory1

Yes

IDXGIFactory2

Partially

Interface support details

IDXGIInfoQueue

Yes

IDXGIKeyedMutex

Yes

IDXGIObject

Yes

IDXGIOutput

Partially

Interface support details

IDXGIOutput1

Partially

Interface support details

IDXGIResource

Yes

IDXGIResource1

Yes

IDXGISurface

Yes

IDXGISurface1

No

IDXGISurface2

Yes

IDXGISwapChain

Partially

Interface support details

IDXGISwapChain1

Partially

Interface support details

Partially supported DXGI interfaces

The following sections list DXGI interfaces that are partially supported on the phone.

IDXGIFactory

Method

Is supported

Notes

CreateSoftwareAdapter

Yes

CreateSwapChain

No

EnumAdapters

Yes

GetWindowAssociation

No

MakeWindowAssociation

No

IDXGIFactory2

Method

Is supported

Notes

CreateSwapChainForCompositionSurface

No

Returns DXGI_ERROR_UNSUPPORTED.

CreateSwapChainForHwnd

No

Returns DXGI_ERROR_UNSUPPORTED.

CreateSwapChainForCoreWindow

Partially

The DXGI_SWAP_CHAIN_DESC1 parameter of this method must set SwapEffect to DXGI_SWAP_EFFECT_DISCARD. The DXGI_SWAP_CHAIN_DESC1 parameter of this method must set BufferCount to 1. The DXGI_SWAP_CHAIN_DESC1 parameter of this method must set Scaling to DXGI_SCALING_STRETCH or DXGI_SCALING_ASPECT_RATIO_STRETCH. The DXGI_SWAP_CHAIN_DESC1 parameter of this method can set the Format to DXGI_FORMAT_R8G8B8A8_UNORM or DXGI_FORMAT_R8G8B8A8_UNORM_SRGB when running on a device, but these formats are not supported on the emulator. The compositor does format validation and if the requested buffer format is not supported, the system will create the buffer using a supported format. If you need to know the actual format of the buffer, query for the format using the following code:

D3D11_TEXTURE2D_DESC backBufferDesc = {0};
backBuffer->GetDesc(&backBufferDesc);
backBufferDesc.Format;

GetSharedResourceAdapeterLuid

Yes

IsWindowedStereoEnabled

No

RegisterOcclusionStatusEvent

No

Returns DXGI_ERROR_INVALID_CALL.

RegisterOcclusionStatusWindow

No

Returns DXGI_ERROR_INVALID_CALL.

RegisterStereoStatusEvent

No

Returns DXGI_ERROR_INVALID_CALL.

RegisterStereoStatusWindow

No

Returns DXGI_ERROR_INVALID_CALL.

UnregisterOcclusionStatus

No

Returns DXGI_ERROR_INVALID_CALL.

UnregisterStereoStatus

No

Returns DXGI_ERROR_INVALID_CALL.

IDXGIOutput

Method

Is supported

Notes

FindClosestMatchingMode

Yes

GetDesc

Yes

GetDisplayModeList

Yes

GetDisplaySurfaceData

No

Returns DXGI_ERROR_UNSUPPORTED.

GetFrameStatistics

No

GetGammaControl

No

Returns DXGI_ERROR_UNSUPPORTED.

GetGammaControlCapabilities

No

Returns DXGI_ERROR_UNSUPPORTED.

ReleaseOwnership

No

SetDisplaySurface

No

Returns DXGI_ERROR_UNSUPPORTED.

SetGammaControl

No

Returns DXGI_ERROR_UNSUPPORTED.

TakeOwnership

No

WaitForVBlank

Yes

IDXGIOutput1

Method

Is supported

Notes

DuplicateOutput

No

Returns DXGI_ERROR_UNSUPPORTED.

FindClosestMatchingMode1

Yes

GetDisplayModeList1

Yes

GetDisplaySurfaceData1

No

Returns DXGI_ERROR_UNSUPPORTED.

IDXGISwapChain

Method

Is supported

Notes

GetBuffer

Yes

This method only supports a value of 0 for the first argument, which is a buffer index.

GetContainingOutput

Yes

GetDesc

Yes

GetFrameStatistics

No

GetFullScreenState

Yes

GetLastPresentCount

Yes

Present

Yes

ResizeBuffers

No

ResizeTarget

No

SetFullScreenState

No

Returns DXGI_ERROR_UNSUPPORTED.

IDXGISwapChain1

Method

Is supported

Notes

GetBackgroundColor

No

Returns DXGI_ERROR_UNSUPPORTED.

GetDesc1

Yes

GetFullScreenDesc

Yes

GetHwnd

No

Returns DXGI_ERROR_UNSUPPORTED.

GetCoreWindow

Yes

GetRestrictToOutput

Yes

GetRotation

No

Returns DXGI_ERROR_UNSUPPORTED.

IsTemporaryMonoSupported

No

Returns DXGI_ERROR_UNSUPPORTED.

Present1

No

Returns DXGI_ERROR_UNSUPPORTED.

SetBackgroundColor

No

Returns DXGI_ERROR_UNSUPPORTED.

SetRotation

No

Returns DXGI_ERROR_UNSUPPORTED.

DirectXMath APIs

Direct3D apps on Windows Phone can use all of the APIs in the DirectXMath library. For a list of these APIs, see DirectXMath Programming Reference.

Unavailable APIs

The following API sets are entirely unavailable for phone applications.

See Also

Other Resources

Direct3D for Windows Phone 8