-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make highlighted items more visible #50
Comments
Note to self: it appears that tiling just made it into egui master, so it may be some time before that option is available in a release: emilk/egui#3481 |
Another idea is to put a highlight box around the box being drawn (red or yellow)
Perhaps we should consider a more muted color scheme so the highlights stand out better.
If it would be helpful we could modify the |
There are two distinct things to work out: (a) the data model (what we want to represent), and (b) the visual representation (how to display it). For the data model, I think there are potentially three interesting states:
It would help to know which of these scenarios you think are relevant. As for drawing it, we could either highlight the whole item and then do some additional highlight at the point/range of interest, or we could just highlight the point/range, or something else. If we choose to highlight both, we may want to rethink how we do this so it's not visually overwhelming. |
|
So, I think we need option 1 at least in the case where the user clicks on a search result: there's no way to know exactly what part of the task they were interested in. |
I'd ideally like to get some feedback from other users on the questions I wrote in #50 (comment) |
I agree that 1 is needed for search results, 2 is useful to know "when" something happened within a task, and that 3 seems like we need it but only for basic things (i.e. part of task state). More complicated use cases should have separate ranges for other recorded events. As for potentially rendering multiple of these things at a time, I don't mind the way that nsight does it, with heavy outlines of highlighted objects and sub-objects. For point queries (i.e. when a task was launched from another task), nsight does something where it renders a highlighted vertical line at the point of the event that spans the whole screen. |
Speaking for myself, (1) is actually what I want most of the time. For example, here's a profile: The CPU processor has a long-running "wrapper" task that goes repeatedly between states of running, waiting, blocked, etc. If I clicked on this task and only highlighted one segment, it would be so small that I might not be able to see it. What I'm expecting is for it to highlight the entire task on the timeline so that I can see the entire duration, and then I might zoom in and try to look around at what it's doing more specifically in one section. I can imagine zooming in and being interested in one specific segment of a task, but to me it seems like a secondary once I can see the overall scope of a task's execution. |
When it's the top-level task though the highlighted thing will be as big as almost the entire timeline. How is that useful to you? You don't have any context to know what the "interesting" part of that timeline is. If you're proposing to do (1) where it highlights the whole item, but maintain the same zoom level and center the window around the interesting point in time that might be ok, but the thing that zooms all the way out to the whole profile because the search result happens to be the top-level task is a non-starter. I'll also not in general that once I do for application calls into the runtime that I already did for mapper calls into the runtime, then the top-level task is hardly ever going to be the result of a search/creator pan. The common case will almost always be to pan to a tiny box so we should optimize accordingly. |
Right now we color highlighted items in red. This is not very visible because the colors picked by the profiler backend tend to be similar, so it's not obvious what is highlighted and what is just naturally red.
There are a couple ways to deal with this but the one I suggested most recently to @lightsighter was to draw the highlight with some sort of cross-hatch pattern, so that (a) it is clearly different from everything else on the screen, no matter what color those are, and (b) hopefully it is highly visible.
I'm not 100% sure how to do that with the primitives we have available, but one option might be to draw a texture over the rectangle we're trying to highlight.
Another request by @lightsighter is to highlight only the portion of the item that was clicked. This is a bit tricky because when you click "Zoom to Item", there isn't a specific segment that is indicated. Therefore, we'll have to be careful about how we do this to maintain a distinction between the item itself and any particular segment of it.
The text was updated successfully, but these errors were encountered: