static void CreateComputeDevice() { var options = new DeviceResourcesOptions(); #if DEBUG options.Debug = true; #endif deviceResources = new RenderTargetDeviceResources(1, 1, D3D11FeatureLevel.FeatureLevel110, options); #if TEST_DOUBLE // Double-precision support is an optional feature of CS 5.0 D3D11FeatureDataDoubles supportDoubles = deviceResources.D3DDevice.CheckFeatureSupportDoubles(); if (!supportDoubles.IsDoublePrecisionFloatShaderOperationsSupported) { Console.WriteLine("No hardware double-precision capable device found, trying to create ref device."); deviceResources.Release(); deviceResources = null; options.ForceWarp = true; deviceResources = new RenderTargetDeviceResources(1, 1, D3D11FeatureLevel.FeatureLevel110, options); } #endif }
static void CleanupResources() { D3D11Utils.ReleaseAndNull(ref g_pBuf0SRV); D3D11Utils.ReleaseAndNull(ref g_pBuf1SRV); D3D11Utils.ReleaseAndNull(ref g_pBufResultUAV); D3D11Utils.ReleaseAndNull(ref g_pBuf0); D3D11Utils.ReleaseAndNull(ref g_pBuf1); D3D11Utils.ReleaseAndNull(ref g_pBufResult); D3D11Utils.ReleaseAndNull(ref g_pCS); deviceResources?.Release(); deviceResources = null; }
static void CleanupResources() { D3D11Utils.ReleaseAndNull(ref g_pReadBackBuffer); D3D11Utils.ReleaseAndNull(ref g_pBuffer2UAV); D3D11Utils.ReleaseAndNull(ref g_pBuffer1UAV); D3D11Utils.ReleaseAndNull(ref g_pBuffer2SRV); D3D11Utils.ReleaseAndNull(ref g_pBuffer1SRV); D3D11Utils.ReleaseAndNull(ref g_pBuffer2); D3D11Utils.ReleaseAndNull(ref g_pBuffer1); D3D11Utils.ReleaseAndNull(ref g_pCB); D3D11Utils.ReleaseAndNull(ref g_pComputeShaderTranspose); D3D11Utils.ReleaseAndNull(ref g_pComputeShaderBitonic); deviceResources.Release(); deviceResources = null; }