Fitur Direct3D 11.1
Fungsionalitas berikut telah ditambahkan di Direct3D 11.1, yang disertakan dengan Windows 8, Windows RT, dan Windows Server 2012. Dukungan parsial untuk Direct3D 11.1 tersedia di Windows 7 dan Windows Server 2008 R2 melalui Platform Update for Windows 7, yang tersedia melalui Platform Update untuk Windows 7.
- shader pelacakan dan penyempurnaan kompilator
- berbagi perangkat Direct3D
- Periksa dukungan fitur dan format Direct3D 11.1 baru
- Gunakan presisi minimum HLSL
- Tentukan bidang klip pengguna di HLSL pada fitur tingkat 9 dan yang lebih tinggi
- Membuat buffer konstanta yang lebih besar daripada shader dapat mengakses
- Menggunakan operasi logis dalam target render
- Paksa jumlah sampel untuk membuat status rasterizer
- Memproses sumber daya video dengan shader
- Dukungan yang Diperluas untuk sumber daya Texture2D bersama
- Ubah sub sumber daya dengan opsi salin baru
- Membuang sumber daya dan tampilan sumber daya
- Mendukung sejumlah besar UAV
- Mengikat subrange buffer konstan ke shader
- Mengambil subrange buffer konstan yang terikat ke shader
- Menghapus semua atau sebagian tampilan sumber daya
- Memetakan SRV buffer dinamis dengan NO_OVERWRITE
- Menggunakan UAV di setiap tahap alur
- dukungan Diperpanjang untuk perangkat WARP
- Menggunakan Direct3D dalam proses Sesi 0
- Dukungan untuk buffer bayangan pada tingkat fitur 9
- Topik terkait
Pelacakan shader dan peningkatan kompilator
Direct3D 11.1 memungkinkan Anda menggunakan pelacakan shader untuk memastikan bahwa kode Anda berfungsi seperti yang dimaksudkan dan jika tidak, Anda dapat menemukan dan memperbaiki masalah. Windows Software Development Kit (SDK) untuk Windows 8 berisi peningkatan kompilator HLSL. Pelacakan shader dan kompilator HLSL diimplementasikan dalam D3dcompiler_nn.dll.
API pelacakan shader dan peningkatan pada kompilator HLSL terdiri dari metode dan fungsi berikut.
- ID3D11RefDefaultTrackingOptions::SetTrackingOptions
- ID3D11RefTrackingOptions::SetTrackingOptions
- ID3D11TracingDevice::SetShaderTrackingOptions
- ID3D11TracingDevice::SetShaderTrackingOptionsByType
- ID3D11ShaderTraceFactory::CreateShaderTrace
- ID3D11ShaderTrace::TraceReady
- ID3D11ShaderTrace::ResetTrace
- ID3D11ShaderTrace::GetTraceStats
- ID3D11ShaderTrace::P SSelectStamp
- ID3D11ShaderTrace::GetInitialRegisterContents
- ID3D11ShaderTrace::GetStep
- ID3D11ShaderTrace::GetWrittenRegister
- ID3D11ShaderTrace::GetReadRegister
- D3DCompile2
- D3DCompileFromFile
- D3DDisassemble11Trace
- D3DDisassembleRegion
- D3DGetTraceInstructionOffsets
- D3DReadFileToBlob
- D3DSetBlobPart
- D3DWriteBlobToFile
Pustaka D3dcompiler.lib memerlukan D3dcompiler_nn.dll. DLL ini bukan bagian dari Windows 8; ini ada dalam versi baris perintah \bin folder of the Windows SDK for Windows 8 along with the Fxc.exe dari kompilator HLSL.
Nota
Meskipun Anda dapat menggunakan kombinasi pustaka dan DLL ini untuk pengembangan, Anda tidak dapat menyebarkan aplikasi Windows Store yang menggunakan kombinasi ini. Oleh karena itu, Anda harus mengkompilasi shader HLSL sebelum mengirim aplikasi Windows Store Anda. Anda dapat menulis biner kompilasi HLSL ke disk, atau pengkompilasi dapat menghasilkan header dengan array byte statis yang berisi data blob shader. Anda menggunakan antarmukaID3DBlob untuk mengakses data blob. Untuk mengembangkan aplikasi Windows Store Anda, panggil D3DCompile2 atau D3DCompileFromFile untuk mengompilasi sumber HLSL mentah, lalu berikan data blob yang dihasilkan ke Direct3D.
Berbagi perangkat Direct3D
Direct3D 11.1 memungkinkan API Direct3D 10 dan API Direct3D 11 untuk menggunakan satu perangkat penyajian yang mendasar.
Fitur Direct3D 11.1 ini terdiri dari metode dan antarmuka berikut.
- ID3D11Device1::CreateDeviceContextState
- ID3D11DeviceContext1::SwapDeviceContextState
- ID3DDeviceContextState
Periksa dukungan fitur dan format Direct3D 11.1 baru
Direct3D 11.1 memungkinkan Anda memeriksa fitur baru yang mungkin didukung driver grafis dan cara baru yang didukung format pada perangkat. Microsoft DirectX Graphics Infrastructure (DXGI) 1.2 juga menentukan nilai DXGI_FORMAT baru.
Fitur Direct3D 11.1 ini terdiri dari API berikut.
- ID3D11Device::CheckFeatureSupport dengan struktur D3D11_FEATURE_DATA_D3D11_OPTIONS, D3D11_FEATURE_DATA_ARCHITECTURE_INFO, D3D11_FEATURE_DATA_D3D9_OPTIONS, D3D11_FEATURE_DATA_SHADER_MIN_PRECISION_SUPPORT, dan D3D11_FEATURE_DATA_D3D9_SHADOW_SUPPORT
- ID3D11Device::CheckFormatSupport dengan D3D11_FORMAT_SUPPORT_DECODER_OUTPUT, D3D11_FORMAT_SUPPORT_VIDEO_PROCESSOR_OUTPUT, D3D11_FORMAT_SUPPORT_VIDEO_PROCESSOR_INPUT, D3D11_FORMAT_SUPPORT_VIDEO_ENCODER, dan D3D11_FORMAT_SUPPORT2_OUTPUT_MERGER_LOGIC_OP
Gunakan presisi minimum HLSL
Dimulai dengan Windows 8, driver grafis dapat menerapkan presisi minimum jenis data skalar HLSL dengan menggunakan presisi apa pun yang lebih besar dari atau sama dengan presisi bit yang ditentukan. Ketika kode shader presisi minimum HLSL Anda digunakan pada perangkat keras yang mengimplementasikan presisi minimum HLSL, Anda menggunakan lebih sedikit bandwidth memori dan akibatnya Anda juga menggunakan lebih sedikit daya sistem.
Anda dapat meminta dukungan presisi minimum yang disediakan driver grafis dengan memanggil ID3D11Device::CheckFeatureSupport dengan nilai D3D11_FEATURE_SHADER_MIN_PRECISION_SUPPORT. Dalam panggilan ID3D11Device::CheckFeatureSupport ini, teruskan penunjuk ke struktur D3D11_FEATURE_DATA_SHADER_MIN_PRECISION_SUPPORT yang ID3D11Device::CheckFeatureSupport diisi dengan tingkat presisi minimum yang didukung driver untuk tahap shader piksel dan untuk tahap shader lainnya. Info yang dikembalikan hanya menunjukkan bahwa perangkat keras grafis dapat melakukan operasi HLSL dengan presisi yang lebih rendah daripada presisi float 32-bit standar, tetapi tidak menjamin bahwa perangkat keras grafis benar-benar akan berjalan pada presisi yang lebih rendah.
Anda tidak perlu menulis beberapa shader yang melakukan dan tidak menggunakan presisi minimum. Sebagai gantinya, buat shader dengan presisi minimum, dan variabel presisi minimum bereaksi pada presisi 32-bit penuh jika driver grafis melaporkan bahwa itu tidak mendukung presisi minimum. Untuk informasi selengkapnya tentang presisi minimum HLSL, lihat Menggunakan presisi minimum HLSL.
Shader presisi minimum HLSL tidak berfungsi pada sistem operasi yang lebih lama dari Windows 8.
Tentukan bidang klip pengguna di HLSL pada tingkat fitur 9 dan yang lebih tinggi
Dimulai dengan Windows 8, Anda dapat menggunakan atribut fungsi clipplanes dalam deklarasi fungsi HLSL daripada SV_ClipDistance untuk membuat shader Anda berfungsi pada tingkat fitur 9_x serta tingkat fitur 10 dan yang lebih tinggi. Untuk informasi selengkapnya, lihat Bidang klip pengguna padaperangkat keras tingkat 9 fitur .
Membuat buffer konstanta yang lebih besar daripada yang dapat diakses shader
Direct3D 11.1 memungkinkan Anda membuat buffer konstanta yang lebih besar dari ukuran buffer konstanta maksimum yang dapat diakses shader (4096 32-bit*4-component constants – 64KB). Kemudian, ketika Anda mengikat buffer ke alur, misalnya, melalui PSSetConstantBuffers atau PSSetConstantBuffers1, Anda dapat menentukan rentang buffer yang dapat diakses shader yang sesuai dengan batas 4096.
Direct3D 11.1 memperbarui metode ID3D11Device::CreateBuffer untuk fitur ini.
Menggunakan operasi logis dalam target render
Direct3D 11.1 memungkinkan Anda menggunakan operasi logis daripada memadukan target render. Namun, Anda tidak dapat mencampur operasi logika dengan pencampuran di beberapa target render.
Fitur Direct3D 11.1 ini terdiri dari API berikut.
Paksa jumlah sampel untuk membuat status rasterizer
Direct3D 11.1 memungkinkan Anda menentukan jumlah sampel paksa saat membuat status rasterizer.
Fitur Direct3D 11.1 ini terdiri dari API berikut.
Nota
Jika Anda ingin merender dengan jumlah sampel yang dipaksa menjadi 1 atau lebih besar, Anda harus mengikuti panduan berikut:
- Jangan mengikat tampilan stensil kedalaman.
- Nonaktifkan pengujian kedalaman.
- Pastikan shader tidak menghasilkan kedalaman.
- Jika Anda memiliki tampilan target render yang terikat (D3D11_BIND_RENDER_TARGET) dan Anda memaksa jumlah sampel menjadi lebih besar dari 1, pastikan bahwa setiap target render hanya memiliki satu sampel.
- Jangan mengoperasikan shader pada frekuensi sampel. Oleh karena itu, ID3D11ShaderReflection::IsSampleFrequencyShader mengembalikan FALSE.
Jika tidak, perilaku penyajian tidak ditentukan. Untuk informasi tentang cara mengonfigurasi stensil kedalaman, lihat Mengonfigurasi Fungsionalitas Depth-Stencil.
Memproses sumber daya video dengan shader
Direct3D 11.1 memungkinkan Anda membuat tampilan (SRV/RTV/UAV) ke sumber daya video sehingga shader Direct3D dapat memproses sumber daya video tersebut. Format sumber daya video yang mendasar membatasi format yang dapat digunakan tampilan. Enumerasi DXGI_FORMAT berisi nilai format sumber daya video baru. Nilai DXGI_FORMAT ini menentukan format tampilan valid yang dapat Anda buat dan bagaimana runtime Direct3D 11.1 memetakan tampilan. Anda dapat membuat beberapa tampilan dari berbagai bagian dari permukaan yang sama, dan tergantung pada formatnya, ukuran tampilan dapat berbeda satu sama lain.
Direct3D 11.1 memperbarui metode berikut untuk fitur ini.
- ID3D11Device::CreateShaderResourceView
- ID3D11Device::CreateRenderTargetView
- ID3D11Device::CreateUnorderedAccessView
Dukungan yang diperluas untuk sumber daya Texture2D bersama
Direct3D 11.1 menjamin bahwa Anda dapat berbagi sumber daya Texture2D yang Anda buat dengan jenis dan format sumber daya tertentu. Untuk berbagi sumber daya Texture2D, gunakan bendera D3D11_RESOURCE_MISC_SHARED, D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX, atau kombinasi bendera D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX dan D3D11_RESOURCE_MISC_SHARED_NTHANDLE (baru untuk Windows 8) saat Anda membuat sumber daya tersebut.
Direct3D 11.1 menjamin bahwa Anda dapat berbagi sumber daya Texture2D yang Anda buat dengan nilai DXGI_FORMAT ini:
- DXGI_FORMAT_R8G8B8A8_UNORM
- DXGI_FORMAT_R8G8B8A8_UNORM_SRGB
- DXGI_FORMAT_B8G8R8A8_UNORM
- DXGI_FORMAT_B8G8R8A8_UNORM_SRGB
- DXGI_FORMAT_B8G8R8X8_UNORM
- DXGI_FORMAT_B8G8R8X8_UNORM_SRGB
- DXGI_FORMAT_R10G10B10A2_UNORM
- DXGI_FORMAT_R16G16B16A16_FLOAT
Selain itu, Direct3D 11.1 menjamin bahwa Anda dapat berbagi sumber daya Texture2D yang Anda buat dengan tingkat mipmap 1, ukuran array 1, bendera ikat D3D11_BIND_SHADER_RESOURCE dan D3D11_BIND_RENDER_TARGET gabungan, default penggunaan (D3D11_USAGE_DEFAULT), dan hanya nilai D3D11_RESOURCE_MISC_FLAG ini:
- D3D11_RESOURCE_MISC_SHARED
- D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX
- D3D11_RESOURCE_MISC_SHARED_NTHANDLE
- D3D11_RESOURCE_MISC_GDI_COMPATIBLE
Direct3D 11.1 memungkinkan Anda berbagi berbagai jenis dan format sumber daya Texture2D yang lebih besar. Anda dapat mengkueri apakah driver grafis dan perangkat keras mendukung berbagi sumber daya Texture2D yang diperluas dengan memanggil ID3D11Device::CheckFeatureSupport dengan nilai D3D11_FEATURE_D3D11_OPTIONS. Dalam panggilan ID3D11Device::CheckFeatureSupport ini, teruskan penunjuk ke struktur D3D11_FEATURE_DATA_D3D11_OPTIONS. ID3D11Device::CheckFeatureSupport mengatur ExtendedResourceSharing anggota D3D11_FEATURE_DATA_D3D11_OPTIONS untuk TRUE jika perangkat keras dan driver mendukung berbagi sumber daya Texture2D yang diperluas.
Jika ID3D11Device::CheckFeatureSupport mengembalikan TRUE di ExtendedResourceSharing , Anda dapat berbagi sumber daya yang Anda buat dengan nilai DXGI_FORMAT ini:
- DXGI_FORMAT_R32G32B32A32_TYPELESS
- DXGI_FORMAT_R32G32B32A32_FLOAT
- DXGI_FORMAT_R32G32B32A32_UINT
- DXGI_FORMAT_R32G32B32A32_SINT
- DXGI_FORMAT_R16G16B16A16_TYPELESS
- DXGI_FORMAT_R16G16B16A16_FLOAT
- DXGI_FORMAT_R16G16B16A16_UNORM
- DXGI_FORMAT_R16G16B16A16_UINT
- DXGI_FORMAT_R16G16B16A16_SNORM
- DXGI_FORMAT_R16G16B16A16_SINT
- DXGI_FORMAT_R10G10B10A2_UNORM
- DXGI_FORMAT_R10G10B10A2_UINT
- DXGI_FORMAT_R8G8B8A8_TYPELESS
- DXGI_FORMAT_R8G8B8A8_UNORM
- DXGI_FORMAT_R8G8B8A8_UNORM_SRGB
- DXGI_FORMAT_R8G8B8A8_UINT
- DXGI_FORMAT_R8G8B8A8_SNORM
- DXGI_FORMAT_R8G8B8A8_SINT
- DXGI_FORMAT_B8G8R8A8_TYPELESS
- DXGI_FORMAT_B8G8R8A8_UNORM
- DXGI_FORMAT_B8G8R8X8_UNORM
- DXGI_FORMAT_B8G8R8A8_UNORM_SRGB
- DXGI_FORMAT_B8G8R8X8_TYPELESS
- DXGI_FORMAT_B8G8R8X8_UNORM_SRGB
- DXGI_FORMAT_R32_TYPELESS
- DXGI_FORMAT_R32_FLOAT
- DXGI_FORMAT_R32_UINT
- DXGI_FORMAT_R32_SINT
- DXGI_FORMAT_R16_TYPELESS
- DXGI_FORMAT_R16_FLOAT
- DXGI_FORMAT_R16_UNORM
- DXGI_FORMAT_R16_UINT
- DXGI_FORMAT_R16_SNORM
- DXGI_FORMAT_R16_SINT
- DXGI_FORMAT_R8_TYPELESS
- DXGI_FORMAT_R8_UNORM
- DXGI_FORMAT_R8_UINT
- DXGI_FORMAT_R8_SNORM
- DXGI_FORMAT_R8_SINT
- DXGI_FORMAT_A8_UNORM
- DXGI_FORMAT_AYUV
- DXGI_FORMAT_YUY2
- DXGI_FORMAT_NV12
- DXGI_FORMAT_NV11
- DXGI_FORMAT_P016
- DXGI_FORMAT_P010
- DXGI_FORMAT_Y216
- DXGI_FORMAT_Y210
- DXGI_FORMAT_Y416
- DXGI_FORMAT_Y410
Jika ID3D11Device::CheckFeatureSupport mengembalikan TRUE di ExtendedResourceSharing, Anda dapat berbagi sumber daya yang Anda buat dengan fitur dan bendera ini:
- D3D11_USAGE_DEFAULT
- D3D11_BIND_SHADER_RESOURCE
- D3D11_BIND_RENDER_TARGET
- D3D11_RESOURCE_MISC_GENERATE_MIPS
- D3D11_BIND_UNORDERED_ACCESS
- Tingkat Mipmap (satu atau beberapa tingkat) dalam sumber daya tekstur 2D (ditentukan dalam MipLevels anggota D3D11_TEXTURE2D_DESC)
- Array sumber daya tekstur 2D (satu atau beberapa tekstur) (ditentukan dalam ArraySize anggota D3D11_TEXTURE2D_DESC)
- D3D11_BIND_DECODER
- D3D11_RESOURCE_MISC_RESTRICTED_CONTENT
- D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE
- D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER
Nota
Saat ExtendedResourceSharingTRUE, Anda memiliki lebih banyak fleksibilitas saat menentukan bendera pengikatan untuk berbagi sumber daya Texture2D. Driver grafis dan perangkat keras tidak hanya mendukung lebih banyak bendera yang mengikat tetapi juga lebih mungkin kombinasi bendera ikat. Misalnya, Anda dapat menentukan hanya D3D11_BIND_RENDER_TARGET atau tanpa bendera ikatan, dan sebagainya.
Bahkan jika ID3D11Device::CheckFeatureSupport mengembalikan TRUE di ExtendedResourceSharing, Anda masih tidak dapat berbagi sumber daya yang Anda buat dengan fitur dan bendera ini:
- D3D11_BIND_DEPTH_STENCIL
- Sumber daya tekstur 2D dalam mode multisample antialias (MSAA) (ditentukan dengan DXGI_SAMPLE_DESC)
- D3D11_RESOURCE_MISC_RESOURCE_CLAMP
- D3D11_USAGE_IMMUTABLE, D3D11_USAGE_DYNAMIC, atau D3D11_USAGE_STAGING (yaitu, dapat dipetakan)
- D3D11_RESOURCE_MISC_TEXTURECUBE
Ubah sub sumber daya dengan opsi salin baru
Direct3D 11.1 memungkinkan Anda menggunakan bendera salinan baru untuk menyalin dan memperbarui subresource. Saat Anda menyalin sub sumber daya, sumber daya sumber dan tujuan dapat identik dan wilayah sumber dan tujuan dapat tumpang tindih.
Fitur Direct3D 11.1 ini terdiri dari API berikut.
Membuang sumber daya dan tampilan sumber daya
Direct3D 11.1 memungkinkan Anda membuang sumber daya dan tampilan sumber daya dari konteks perangkat. Fungsionalitas baru ini menginformasikan GPU bahwa konten yang ada dalam tampilan sumber daya atau sumber daya tidak lagi diperlukan.
Fitur Direct3D 11.1 ini terdiri dari API berikut.
- ID3D11DeviceContext1::D iscardResource
- ID3D11DeviceContext1::D iscardView
- ID3D11DeviceContext1::D iscardView1
Mendukung sejumlah besar UAV
Direct3D 11.1 memungkinkan Anda menggunakan sejumlah besar UAV saat Mengikat sumber daya ke tahap output-merger dan saat Anda mengatur array tampilan untuk sumber daya yang tidak diurutkan.
Direct3D 11.1 memperbarui metode berikut untuk fitur ini.
- ID3D11DeviceContext::OMSetRenderTargetsAndUnorderedAccessViews
- ID3D11DeviceContext::CSSetUnorderedAccessViews
Mengikat subrange buffer konstanta ke shader
Direct3D 11.1 memungkinkan Anda mengikat subrange buffer konstan untuk akses shader. Anda dapat menyediakan buffer konstanta yang lebih besar dan menentukan subrange yang dapat digunakan shader.
Fitur Direct3D 11.1 ini terdiri dari API berikut.
- ID3D11DeviceContext1::CSSetConstantBuffers1
- ID3D11DeviceContext1::D SSetConstantBuffers1
- ID3D11DeviceContext1::GSSetConstantBuffers1
- ID3D11DeviceContext1::HSSetConstantBuffers1
- ID3D11DeviceContext1::P SSetConstantBuffers1
- ID3D11DeviceContext1::VSSetConstantBuffers1
Mengambil subrange buffer konstanta yang terikat ke shader
Direct3D 11.1 memungkinkan Anda mengambil subrange buffer konstan yang terikat ke shader.
Fitur Direct3D 11.1 ini terdiri dari API berikut.
- ID3D11DeviceContext1::CSGetConstantBuffers1
- ID3D11DeviceContext1::D SGetConstantBuffers1
- ID3D11DeviceContext1::GSGetConstantBuffers1
- ID3D11DeviceContext1::HSGetConstantBuffers1
- ID3D11DeviceContext1::P SGetConstantBuffers1
- ID3D11DeviceContext1::VSGetConstantBuffers1
Menghapus semua atau sebagian tampilan sumber daya
Direct3D 11.1 memungkinkan Anda menghapus tampilan sumber daya (RTV, UAV, atau tampilan video apa pun dari permukaan Texture2D). Anda menerapkan nilai warna yang sama ke semua bagian tampilan.
Fitur Direct3D 11.1 ini terdiri dari API berikut.
Memetakan SRV buffer dinamis dengan NO_OVERWRITE
Direct3D 11.1 memungkinkan Anda memetakan tampilan sumber daya shader (SRV) buffer dinamis dengan D3D11_MAP_WRITE_NO_OVERWRITE. Direct3D 11 dan runtime sebelumnya membatasi pemetaan ke puncak atau buffer indeks.
Direct3D 11.1 memperbarui metode ID3D11DeviceContext::Map untuk fitur ini.
Menggunakan UAV di setiap tahap alur
Direct3D 11.1 memungkinkan Anda menggunakan instruksi model shader 5.0 berikut di semua tahap shader yang sebelumnya digunakan hanya dalam shader piksel dan shader komputasi.
- dcl_uav_typed
- dcl_uav_raw
- dcl_uav_structured
- ld_raw
- ld_structured
- ld_uav_typed
- store_raw
- store_structured
- store_uav_typed
- sync_uglobal
- Semua atomik dan atom langsung (misalnya, atomic_and dan imm_atomic_and)
Direct3D 11.1 memperbarui metode berikut untuk fitur ini.
- ID3D11DeviceContext::CreateDomainShader
- ID3D11DeviceContext::CreateGeometryShader
- ID3D11DeviceContext::CreateGeometryShaderWithStreamOutput
- ID3D11DeviceContext::CreateHullShader
- ID3D11DeviceContext::CreateVertexShader
Instruksi ini ada di Direct3D 11.0 di ps_5_0 dan cs_5_0. Karena Direct3D 11.1 membuat UAV tersedia di semua tahap shader, instruksi ini tersedia di semua tahap shader.
Jika Anda meneruskan shader yang dikompilasi (VS/HS/DS/HS) yang menggunakan salah satu instruksi ini ke fungsi create-shader, seperti CreateVertexShader, pada perangkat yang tidak mendukung UAV di setiap tahap (termasuk driver yang ada yang tidak diimplementasikan dengan fitur ini), fungsi create-shader gagal. Fungsi create-shader juga gagal jika shader mencoba menggunakan slot UAV di luar set slot UAV yang didukung perangkat keras.
UAV yang dirujuk oleh instruksi ini dibagikan di semua tahap alur. Misalnya, UAV yang terikat pada slot 0 pada tahap output-merger tersedia di slot 0 hingga VS/HS/DS/GS/PS.
UAV mengakses yang Anda keluarkan dari dalam atau di seluruh tahap shader yang dijalankan dalam Draw*() tertentu atau bahwa Anda mengeluarkan dari shader komputasi dalam Dispatch*() tidak dijamin selesai dalam urutan anda mengeluarkannya. Tetapi semua akses UAV selesai di akhir Draw*() atau Dispatch*().
Dukungan yang diperluas untuk perangkat WARP
Direct3D 11.1 memperluas dukungan untuk perangkat WARP, yang Anda buat dengan meneruskan D3D_DRIVER_TYPE_WARP dalam parameter DriverTypeD3D11CreateDevice.
Dimulai dengan dukungan perangkat WARP Direct3D 11.1:
- Semua tingkat fitur Direct3D dari 9,1 hingga 11,1
- shader Komputasi dan tessellation
- Permukaan bersama. Artinya, Anda dapat sepenuhnya berbagi permukaan antara perangkat WARP, serta antara perangkat WARP dalam proses yang berbeda.
Perangkat WARP tidak mendukung fitur opsional ini:
- ganda
- pengodean atau dekode video
- dukungan shader presisi minimum
Saat Anda menjalankan komputer virtual (VM), Hyper-V, dengan unit pemrosesan grafis (GPU) Anda dinonaktifkan, atau tanpa driver tampilan, Anda mendapatkan perangkat WARP yang nama ramahnya adalah "Microsoft Basic Display Adapter." Perangkat WARP ini dapat menjalankan pengalaman Windows lengkap, yang mencakup aplikasi DWM, Internet Explorer, dan Windows Store. Perangkat WARP ini juga mendukung menjalankan aplikasi warisan yang menggunakan DirectDraw atau menjalankan aplikasi yang menggunakan Direct3D 3 melalui Direct3D 11.1.
Menggunakan Direct3D dalam proses Sesi 0
Dimulai dengan Windows 8 dan Windows Server 2012, Anda dapat menggunakan sebagian besar API Direct3D dalam proses Sesi 0.
Nota
OUTPUT, jendela, rantai pertukaran, dan API terkait presentasi ini tidak tersedia dalam proses Sesi 0 karena tidak berlaku untuk lingkungan Sesi 0:
- IDXGIFactory::CreateSwapChain
- IDXGIFactory::GetWindowAssociation
- IDXGIFactory::MakeWindowAssociation
- IDXGIAdapter::EnumOutputs
- ID3D11Debug::SetFeatureMask
- ID3D11Debug::SetPresentPerRenderOpDelay
- ID3D11Debug::SetSwapChain
- ID3D10Debug::SetFeatureMask
- ID3D10Debug::SetPresentPerRenderOpDelay
- ID3D10Debug::SetSwapChain
- D3D10CreateDeviceAndSwapChain
- D3D10CreateDeviceAndSwapChain1
- D3D11CreateDeviceAndSwapChain
Jika Anda memanggil salah satu API sebelumnya dalam proses Sesi 0, api akan mengembalikan DXGI_ERROR_NOT_CURRENTLY_AVAILABLE.
Dukungan untuk buffer bayangan pada tingkat fitur 9
Gunakan subset fitur buffer bayangan Direct3D 10_0+ untuk menerapkan efek bayangan pada tingkat fitur 9_x. Untuk informasi tentang apa yang perlu Anda lakukan untuk menerapkan efek bayangan pada tingkat fitur 9_x, lihat Menerapkan buffer bayangan untuk fitur Direct3D tingkat 9.
Topik terkait