[PATCH vkd3d 4/5] vkd3d-shader: Return the register space of each used UAV and UAV counter in vkd3d_shader_scan_info.

Zebediah Figura zfigura at codeweavers.com
Thu Jun 4 16:09:47 CDT 2020


On 6/4/20 3:48 PM, Henri Verbeet wrote:
> On Thu, 4 Jun 2020 at 06:20, Zebediah Figura <zfigura at codeweavers.com> wrote:
>> +struct vkd3d_uav_scan_info
>> +{
>> +    unsigned int register_space, register_index, id;
>> +    bool counter, read;
>> +};
>> +
> It seems tempting to store the "counter" and "read" fields as a
> "flags" field instead. For what it's worth, note that I also have
> patches in this area in my own tree; we'll need to store information
> about the other descriptor types in the vkd3d_shader_scan_info at some
> point as well.

Sure, that makes sense.

> I'm not sure whether there's a use for the "id" field in the public
> API. I'm inclined to say lookup by ID should go through the
> "symbol_table" tree.

Yes, I don't see a reason to expose "id".

Is the idea then to introduce a new symbol table in struct
vkd3d_shader_parser? It seems a bit unfortunate that the table would be
duplicated, but after all I guess it's not a lot of duplication...

> Perhaps more important is the question how this would work with ranges
> larger than a single descriptor. I.e., how would for example a
> "dcl_uav_raw u0[1:3], ..." declaration be represented in the
> vkd3d_shader_scan_info structure?
> 

It's hard for me to answer that without a full perspective as to how the
indices are or might be used, but my best guess is that, if descriptor
ranges are uploaded all at once, we'd want to track a single
used/counter flag for the whole range.



More information about the wine-devel mailing list