Add a stubbed out query for pulling descriptor contents out of a store

This commit is contained in:
baldurk
2024-04-10 15:01:26 +01:00
parent 7ef216ad35
commit b94e6ff90c
20 changed files with 324 additions and 0 deletions
+34
View File
@@ -630,6 +630,40 @@ It is an :class:`AlphaMapping` that controls what behaviour to use.
DECLARE_REFLECTION_STRUCT(TextureSave);
DOCUMENT("A range of sized descriptors.");
struct DescriptorRange
{
DOCUMENT("");
DescriptorRange() = default;
DescriptorRange(const DescriptorRange &) = default;
DescriptorRange &operator=(const DescriptorRange &) = default;
DOCUMENT("The offset in the descriptor storage where the descriptor range starts.");
uint32_t offset = 0;
DOCUMENT("The size of each descriptor in the range.");
uint32_t descriptorSize = 1;
DOCUMENT("The number of descriptors in this range.");
uint32_t count = 1;
DOCUMENT("");
bool operator==(const DescriptorRange &o) const
{
return offset == o.offset && descriptorSize == o.descriptorSize && count == o.count;
}
bool operator<(const DescriptorRange &o) const
{
if(!(offset == o.offset))
return offset < o.offset;
if(!(descriptorSize == o.descriptorSize))
return descriptorSize < o.descriptorSize;
if(!(count == o.count))
return count < o.count;
return false;
}
};
DECLARE_REFLECTION_STRUCT(DescriptorRange);
// dependent structs for TargetControlMessage
DOCUMENT("Information about the a new capture created by the target.");
struct NewCaptureData
+22
View File
@@ -566,6 +566,28 @@ capture's API.
)");
virtual const PipeState &GetPipelineState() = 0;
DOCUMENT(R"(Retrieve the contents of a number of descriptors in a descriptor store. Multiple
ranges within the store can be queried at once, and are returned in a contiguous array.
:param ResourceId descriptorStore: The descriptor store to be queried from.
:param List[DescriptorRange] ranges: The descriptor ranges to query.
:return: The contents of the descriptors specified.
:rtype: List[Descriptor]
)");
virtual rdcarray<Descriptor> GetDescriptors(ResourceId descriptorStore,
const rdcarray<DescriptorRange> &ranges) = 0;
DOCUMENT(R"(Retrieve the contents of a number of sampler descriptors in a descriptor store.
Multiple ranges within the store can be queried at once, and are returned in a contiguous array.
:param ResourceId descriptorStore: The descriptor store to be queried from.
:param List[DescriptorRange] ranges: The descriptor ranges to query.
:return: The contents of the descriptors specified.
:rtype: List[SamplerDescriptor]
)");
virtual rdcarray<SamplerDescriptor> GetSamplerDescriptors(
ResourceId descriptorStore, const rdcarray<DescriptorRange> &ranges) = 0;
DOCUMENT(R"(Retrieve the list of possible disassembly targets for :meth:`DisassembleShader`. The
values are implementation dependent but will always include a default target first which is the
native disassembly of the shader. Further options may be available for additional diassembly views