baldurk
69e4be52cf
Display bounding box data in mesh view camera panel
...
* This isn't the best place for it but it makes the most sense for now.
2019-05-22 13:57:23 +01:00
baldurk
074070b1cf
Only unproject position attributes that output a position. Closes #1363
...
* If we select a UV attribute to draw as position we don't want to unproject it
for display, just treat it as we do any normal attribute.
2019-05-22 13:38:20 +01:00
baldurk
467dd5e808
Fix calculation of bounding boxes for non-4 component attributes
...
* If we only have 3 or 2 components, set the remaining bounding box values to 0
so they aren't set at +/- FLT_MAX.
2019-05-22 12:40:56 +01:00
baldurk
dd77b8a2b6
Fix order-of-operations, update position/secondary columns first
...
* We need to have the correct position and secondary columns before updating the
mesh configuration that references them.
2019-05-22 12:40:19 +01:00
baldurk
e48065c96b
Replace use of std::pair with rdcpair wherever possible
...
* Only remaining uses in our code is when we're interacting with std::map where
it uses std::pair internally
2019-05-17 16:32:56 +01:00
baldurk
2320bb5391
Pass the right MeshDataStage to HasAlignedPostVSData()
2019-04-12 16:51:35 +01:00
baldurk
2ddf3b7adf
Auto-fit the WASD camera to the bounding box after switching
...
* We do the same for the arcball, there's no reason the flycam should default to
the origin for vertex inputs
2019-04-09 11:09:22 +01:00
baldurk
db89f50a30
Rename Mesh Output panel to Mesh Viewer, since it displays inputs too
2019-03-08 15:40:11 +00:00
baldurk
95f07ab6df
Add missing deref of buffer data in mesh view
2019-03-01 12:47:29 +00:00
baldurk
301ef89aac
Only calculate bounding box data on mesh views
2019-03-01 11:34:15 +00:00
baldurk
ac37a592cc
Refactor BufferViewer to avoid race conditions
...
* We now push everything mutable about the draw data configuration into a single
struct which we copy around (the actual buffer data remains refcounted and not
copied). This means that we don't have one thread still trying to do things on
a model which is being updated on another thread.
2019-02-28 17:48:30 +00:00
baldurk
24882eb486
When event changes in BufferViewer, preserve row offset don't reset
2019-02-15 15:10:31 +00:00
baldurk
73a5357419
Fix handling of primitive restart with a vertex offset
2019-02-04 18:06:09 +00:00
baldurk
86ff87863e
Update copyright years to 2019
2019-02-01 18:32:13 +00:00
baldurk
317e89f7cb
Add QIODevice::Text for text writing, to convert newlines. Refs #1246
2019-01-28 19:55:39 +00:00
baldurk
58e2c88e76
Don't custom size horizontal header by default in RDTableView
2018-12-17 17:10:33 +00:00
baldurk
68b23c5f62
Add support for YUV resource formats
...
* We handle 4:4:4, 4:2:2, and 4:2:0, with packed, 2-plane and 3-plane formats,
for 8, 10, 12, and 16 bit depths.
* This covers most common formats but still leaves a few out - NV11, palettised
formats, V208/V408 JPG formats.
2018-12-11 19:57:20 +00:00
baldurk
74ce0d92fd
Pad 0 with a preceeding space for signed integer display in buffers
...
* This means that it lines up with -1 the same as positive numbers do
2018-11-14 18:32:34 +00:00
baldurk
8447e43e78
Fix panel menus
2018-10-23 15:15:39 +01:00
baldurk
94dfb9890b
Allow registering window, panel and context menu items with callbacks
2018-10-23 14:23:12 +01:00
baldurk
b5854f0fec
Implement VK_EXT_transform_feedback, and use it for mesh output
...
* For pipelines using tessellation or containing a geometry shader we use
transform feedback to fetch the output of the vertex pipeline after these
stages.
2018-10-16 16:53:03 +01:00
baldurk
615b743b8e
Make shader debugging soft-blocking, pop up progress bar while working
...
* This prevents the user from accidentally triggering some other process while
the debug is still on-going, if it's taking a while.
2018-10-08 17:24:00 +01:00
baldurk
fcb74d2f7c
Don't try to display vertex buffer if we should be using generics
2018-09-25 18:20:27 +01:00
baldurk
5406227152
Call CreateWindowingData on the main UI thread
...
* This allows mac to patch-up the widget to be renderable, and has to happen on
the UI thread.
2018-08-31 22:14:12 +01:00
baldurk
5024f80ee9
Make code more robust if indexed draw has unbound ibuffer. Closes #1085
2018-08-28 18:23:57 +01:00
baldurk
d79ead308f
Make a little more room in VTX/IDX columns in buffer viewer
2018-08-03 14:47:15 +01:00
baldurk
53364adeef
Support mesh output from different view indices on vulkan
...
* When using VK_KHR_multiview you can select which view to view the mesh data from.
2018-06-19 20:48:30 +01:00
baldurk
45c3c27923
Rename DrawFlags::UseIBuffer to DrawFlags::Indexed
2018-06-15 19:40:54 +01:00
baldurk
4de23d8d8b
Fetch enough data even for odd vertex attribute offsets. Closes #1007
2018-06-05 21:08:06 +01:00
baldurk
fe8cbfcc8c
Handle different actual indices vs. displayed indices exporting VS Out
...
* For VS Out data the actual offsets may be different than displayed, so we
calculate manually rather than querying the model for each index.
2018-06-04 20:12:27 +01:00
baldurk
082ab4d75d
GUIInvoke takes a QObject* to avoid callbacks after object lifetime
...
* The GUIInvoke object takes a QObject, and uses QPointer to check that
it hasn't been deleted when the callback fires. This prevents delayed
callbacks from executing after the object has been deleted and
crashing.
* In most cases the pointer is just 'this'.
2018-05-08 11:54:34 +01:00
baldurk
2974ca8d12
Delete replay outputs on replay thread, not on UI thread
...
* On OpenGL this can cause problems with not being able to make the
output context current because it's already current on the replay
thread.
2018-04-05 12:34:22 +01:00
Baldur Karlsson
f8a0aeef1f
Skip vertex buffers with invalid byte stride
2018-03-13 13:04:36 +00:00
Baldur Karlsson
98041c5b93
Try to protect against invalid draw counts without crashing
...
* This can be especially error-prone with indirect draws where the
parameters are GPU-fed and may point to random memory.
2018-03-12 15:46:45 +00:00
Baldur Karlsson
669589b3f8
Preserve mesh tables horiz scroll when picking vertices or syncing views
2018-03-12 15:46:45 +00:00
Baldur Karlsson
1a268ace8b
Add async tags for display widget painting
...
* This prevents widget painting from getting out of control and queuing
up many redundant paints which slows down processing of the command
queue.
* Also remove a spammy command to disable pixel context that only ever
got called when pixel context was already disabled (right after a
reset - at all other times it stays active).
2018-03-12 15:46:44 +00:00
ashleysmithgpu
ecccb6973a
Buffer viewer now updates contents when EID changes
2018-02-27 15:25:46 +00:00
baldurk
4a2242f0a1
Make checkerboard colours update immediately when theme changes
2018-02-21 14:29:36 +00:00
baldurk
57712ea691
Fix mesh output 'sync views' - need to walk parent stack to tableview
2018-02-12 20:47:59 +00:00
baldurk
96c487c8c0
Use absolute dimensions of viewport to calculate aspect ratio. Refs #856
...
* On vulkan the viewport height could be negative to flip the NDC, but
we don't care about its sign only its magnitude to calculate the
aspect ratio.
2018-02-02 17:29:12 +00:00
baldurk
d6b6fcf2c1
Only export NULLs if something actually went wrong!
2018-02-02 16:09:24 +00:00
baldurk
8f405a2197
Render mesh data with instanced properties correctly.
2018-01-24 16:14:22 +00:00
baldurk
f0c6323685
Don't update buffer viewer display if we just mousemove without clicking
2018-01-24 12:38:28 +00:00
baldurk
65ef82466c
Re-organise Analytics structures a bit to be more processing friendly
2018-01-19 13:57:02 +00:00
baldurk
5e819a6e23
Ensure mesh columns list is cleared before reconfiguring
2018-01-16 20:12:06 +00:00
baldurk
aba8dacd25
Use baseVertex value from PostVS data
2018-01-16 20:12:04 +00:00
baldurk
01ee0e32ba
Update preview settings after fetching PostVS data
2018-01-11 13:48:32 +00:00
baldurk
e305029ddd
Update copyright years to 2018
2018-01-01 17:55:29 +00:00
baldurk
6572cd97f5
Tidy up handling of windowing data, make it a bit more type safe
2018-01-01 17:31:19 +00:00
baldurk
ebaefc82a9
Normalise and make python/public interface more consistent
...
* We enforce a naming scheme more strongly - types, member functions,
and enum values must be UpperCaseCamel, and member variables must be
lowerCaseCamel. No underscores allowed.
* eventId not eventID or EID, and Id preferred to ID in general. Also
for resourceId.
* Removed some lingering hungarian m_Foo naming.
* Some pipeline state structs that are almost identical between the
different APIs are pulled out into common structs. Where something
doesn't make sense (e.g. viewport enable for vulkan) it will just be
set to a sensible default (in that case always true).
* Changed scissors to be x/y & width/height instead of sometimes
left/top/right/bottom
* Abbreviations are discouraged, e.g. operation not op, function not
func.
2017-12-22 13:02:36 +00:00