void ConstructPlatformDependentMembers() { m_Device = H1Global <H1ManagedRenderer> .Instance.Device; m_CurrentHeap = null; m_CurrentHandle.Ptr = null; // set descriptor size m_DescriptorSize = m_Device.GetDescriptorHandleIncrementSize(H1RHIDefinitionHelper.ConvertToDescriptorHeapType(m_HeapType)); }
protected DescriptorHeap RequestNewHeap(H1DescriptorHeapType type) { DescriptorHeapType typeInDX12 = H1RHIDefinitionHelper.ConvertToDescriptorHeapType(type); // @TODO - need to be thread-safe DescriptorHeapDescription desc = new DescriptorHeapDescription(); desc.Type = typeInDX12; desc.DescriptorCount = NumDescriptorsPerHeap; // this part is none, but for usage in command context, you need to create new descriptor for shader-visible by UserDescriptorHeap or DynamicDescriptorHeap desc.Flags = DescriptorHeapFlags.None; desc.NodeMask = 1; DescriptorHeap newHeap = m_Device.CreateDescriptorHeap(desc); m_DescriptorHeapPool.Add(newHeap); return(newHeap); }