[Mesa-dev] [PATCH v2 10/11] intel: aubinator_viewer: store urb state during decoding

Lionel Landwerlin lionel.g.landwerlin at intel.com
Wed Aug 8 23:08:00 UTC 2018

On 08/08/18 21:55, Rafael Antognolli wrote:
>> t
>> @@ -790,6 +892,7 @@ aub_viewer_render_batch(struct aub_viewer_decode_ctx *ctx,
>>         for (unsigned i = 0; i < ARRAY_SIZE(info_decoders); i++) {
>>            if (strcmp(inst_name, info_decoders[i].cmd_name) == 0) {
>> +            ctx->stage = info_decoders[i].stage;
>>               info_decoders[i].decode(ctx, inst, p);
>>               break;
> Looks like you run the info_decoders before the display decoders (even
> though some of them decode the same type of instructions) because you
> want to first do a pass storing all the information required for the
> display_decoders, right?
> And in this case, you also want to store the stage we are at, so when we
> run the info_decoders that information is available.
> Also, is there a chance we use these same info decoders for storing
> other information than urb related stuff? If so, maybe we should just
> call them handle_3ds_gs, handle_3ds_constant_vs, etc... Or something
> along those lines. But of course we could just rename them in the
> future.
The UI code (decode_* functions) run conditionally to the instruction 
having their fields visible (expanded by clicking on them).

info_decoders runs unconditionally so that we can have a consistent 
accumulated state that doesn't depend on the UI state.

For example, you might not want to display urb instructions & their 
content. Yet you still need to parse their content so that URB state can 
be displayed on a latter instruction (like 3DPRIMITIVE).

This is poorly named indeed and could be done more efficiently. This can 
be done later (once you get the hang of ImGui. It's really fun!).



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20180809/ab2ac9b6/attachment.html>

More information about the mesa-dev mailing list