baldurk
db563bb0bf
Refactor public interface around handling of textures
...
* Subresource handling is more consistent - we pass around a struct now that
contains the array slice, mip level, and sample. We remove the concept of
'MSAA textures count samples as extra slices within the real slices' and
internalise that completely. This also means we have a consistent set
everywhere that we need to refer to a subresource.
* Functions that used to be in the ReplayOutput and use a couple of implicit
parameters from the texture viewer configuration are now in the
ReplayController and take them explicitly. This includes GetMinMax,
GetHistogram, and PickPixel.
* Since these functions aren't ReplayOutput relative, if you want to decode the
custom shader texture or the overlay texture you need to pass that ID
directly.
2019-11-26 17:38:25 +00:00
baldurk
6201183504
Fix broken buffer viewer UI protection
2019-11-15 18:33:17 +00:00
baldurk
07e8731776
Protect against buffer view being closed during async render thread work
2019-11-13 17:25:01 +00:00
baldurk
a08455c4fb
Don't crash if vertex buffer stride is 0 when picking vertices
2019-10-23 11:23:32 +01:00
baldurk
03ddc61779
Support rich resource text in buffer viewer
2019-10-15 15:05:38 +01:00
baldurk
d48b84d8f5
Pass buffer length to format string parse, for better default format
...
* If we are only looking at a 4-byte buffer, don't use a uint4 default or it
will fail to display anything
2019-10-15 10:54:42 +01:00
baldurk
54291b0e29
Fix linux compilation (again)
2019-09-07 12:06:05 +01:00
baldurk
7fe044faaf
Fix display of 64-bit integers in buffer viewer
2019-09-07 09:24:46 +01:00
baldurk
07158ad24c
Fix support for triangle fans on GL/Vulkan
2019-08-20 15:33:12 +01:00
baldurk
61de35bfc6
Pass through primitive restart state when rendering meshes
2019-08-12 17:53:22 +01:00
Tillmann Karras
622c8bdb0e
BufferViewer: fix 2/4-byte primitive restart
2019-07-24 11:24:09 +01:00
Tillmann Karras
f61a5e464c
BufferViewer: never leave indices uninitialized
2019-07-24 11:24:09 +01:00
baldurk
e525630a17
Add special resource type for A8_UNORM. Closes #1426
...
* While it's redundant this format is still valid in D3D so needs to be handled
correctly.
2019-06-25 19:08:07 +01:00
baldurk
70007d0794
Don't consider interim position builtins to be projected/rasterized
...
* Even if the VS outputs to the position builtin, if there's a tessellation or
geometry shader consuming it that doesn't mean much.
2019-06-05 17:57:28 +01:00
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