diff --git a/Source/SharpDX.Direct3D11/DeviceContext.ComputeShaderStage.cs b/Source/SharpDX.Direct3D11/DeviceContext.ComputeShaderStage.cs
index 660c6d955..c29cf363e 100644
--- a/Source/SharpDX.Direct3D11/DeviceContext.ComputeShaderStage.cs
+++ b/Source/SharpDX.Direct3D11/DeviceContext.ComputeShaderStage.cs
@@ -105,5 +105,16 @@ public unsafe void SetUnorderedAccessViews(int startSlot, SharpDX.Direct3D11.Uno
fixed (void* puav = uavInitialCounts)
SetUnorderedAccessViews(startSlot, unorderedAccessViews != null ? unorderedAccessViews.Length : 0, (IntPtr)unorderedAccessViewsOut_, (IntPtr)puav);
}
+
+ ///
+ /// Sets an array of views for an unordered resource.
+ ///
+ /// Index of the first element in the zero-based array to begin setting.
+ /// A reference to an array of references to be set by the method.
+ public unsafe void SetUnorderedAccessViews(int startSlot, ComArray unorderedAccessViews, int[] uavInitialCounts)
+ {
+ fixed (void* puav = uavInitialCounts)
+ SetUnorderedAccessViews(startSlot, unorderedAccessViews == null ? 0 : unorderedAccessViews.Length, unorderedAccessViews.NativePointer, (IntPtr)puav);
+ }
}
}
\ No newline at end of file
diff --git a/Source/SharpDX.Direct3D11/DeviceContext.OutputMergerStage.cs b/Source/SharpDX.Direct3D11/DeviceContext.OutputMergerStage.cs
index 847b53c55..15691199e 100644
--- a/Source/SharpDX.Direct3D11/DeviceContext.OutputMergerStage.cs
+++ b/Source/SharpDX.Direct3D11/DeviceContext.OutputMergerStage.cs
@@ -122,7 +122,8 @@ public UnorderedAccessView[] GetUnorderedAccessViews(int startSlot, int count)
var temp = new UnorderedAccessView[count];
DepthStencilView depthStencilView;
GetRenderTargetsAndUnorderedAccessViews(0, new RenderTargetView[0], out depthStencilView, startSlot, count, temp);
- depthStencilView.Dispose();
+ if (depthStencilView != null)
+ depthStencilView.Dispose();
return temp;
}