private void CopyR32_UInt_UAVToExistingSRV(UnorderedAccessView uav, ShaderResourceView srv) { var device = this.DeviceManager.Direct3DDevice; int width, height; using (var t = uav.ResourceAs <Texture2D>()) { width = t.Description.Width; height = t.Description.Height; if (t.Description.Format != Format.R32_UInt) { throw new ArgumentException("The provided UAV does not use the format R32_Uint", "uav"); } using (var t2 = srv.ResourceAs <Texture2D>()) { if (t2.Description.Format != Format.R8G8B8A8_Typeless) { throw new ArgumentException("Currently only supporting R8G8B8A8_Typeless SRVs", "srv"); } this.DeviceManager.Direct3DDevice.ImmediateContext.CopyResource(t, t2); } } }
private void CopyUAVToSRV(ShaderResourceView srv, UnorderedAccessView uav) { var device = this.DeviceManager.Direct3DDevice; using (var t = srv.ResourceAs <Texture2D>()) { using (var t2 = uav.ResourceAs <Texture2D>()) { // Copy the texture for the resource to the typeless texture device.ImmediateContext.CopyResource(t, t2); } } }