Commit Graph

79 Commits

Author SHA1 Message Date
baldurk a995ee66e2 Change handling of shaders and entry points so they're not aliased 2016-02-07 18:49:03 +01:00
baldurk 63d643d43c Replay functions compiling 2016-02-07 18:48:31 +01:00
baldurk 521ec84b8b Add pipeline export to HTML for vulkan 2016-02-07 18:48:08 +01:00
baldurk bd5a6752e2 Use viewport for guessing aspect ratio, not dimensions of depth/colour 2016-02-07 18:47:33 +01:00
baldurk 101d780956 Handle post-vs data being padded/aligned instead of tightly packed 2016-02-07 18:47:33 +01:00
baldurk 5c309d9d34 Refactor handling of resources/binding to be much more flexible
* This will handle the new vulkan binding model with multiple descriptor
  sets and arrays of objects in each binding. It also makes a few tidy
  ups and improvements to other APIs in presentation - will e.g. now
  show thumbnails for vertex and other stages.
2016-02-07 18:46:40 +01:00
baldurk e51cf27321 Get abbreviations from common pipeline state (as they're API specific)
* Also the PipelineStateViewer will set its current 'sticky' API type
  to the common pipeline state, so that when a log isn't loaded we can
  still get API-specific properties that match the last API used.
2016-02-07 18:46:38 +01:00
baldurk 8a6d2ebf30 Handle arrays of uniform buffers in descriptor slots 2016-02-07 18:46:35 +01:00
baldurk 36d2ffd988 Handle super small buffers in buffer viewer without displaying nothing 2016-02-07 18:45:14 +01:00
baldurk 4ece1ed5b3 Handle vtx binds referencing unset vbuffers (valid if binds are unused) 2016-02-07 18:45:12 +01:00
baldurk 4fe74824b1 Switch buffer offsets and lengths to 64-bit, downcast only where needed 2016-02-07 18:45:06 +01:00
baldurk 448df65773 Protect against framebuffer being unset when not in valid pipeline state 2016-02-07 18:42:29 +01:00
baldurk 238efe31f1 List resources for texture viewer to pick up 2016-02-07 18:42:11 +01:00
baldurk a25d07cf59 Display cbuffer contents within vulkan pipe viewer
* For now, we just assume that cbuffers are tightly packed according to
  D3D11 rules (matrices, structs, float3/4 are all float4 aligned), and
  once final SPIR-V is generated everything should have explicit
  offsets, strides, and sizes
2016-02-07 18:42:06 +01:00
baldurk 8832573dbb Expose SPIR-V reflection data to UI 2016-02-07 18:41:45 +01:00
baldurk 8eddd387d7 Add vulkan pipeline state viewer based on D3D11 viewer 2016-02-07 18:41:35 +01:00
baldurk edac1f0bfd Pass vulkan pipeline state along to UI 2016-02-07 18:41:29 +01:00
baldurk 8b7a025853 Refactor BGRA formats to not be special (so allow any BGRA format)
* Also add ASTC and D16S8 types while in the neighbourhood
2015-11-29 22:05:26 +01:00
baldurk ebe442d1d8 Update tips dialog and add a menu item for it. 2015-09-25 21:09:12 +02:00
baldurk 2d12d5abee Add an update dialog that shows update notes & does upgrade smoothly 2015-08-30 00:11:48 +02:00
baldurk 9d25afbfa0 Change OnEventSelected callbacks to be blocking invoke
* Fixes a race condition you could hit running from e.g. Python or some
  other non-UI thread.
2015-08-24 21:56:46 +02:00
baldurk 6a2344d9d8 Show correct inputs/outputs for copy and dispatch calls. Refs #147
* Next step is to display VS and other stage inputs on the input panel.
* Also need to tidy up the fetching of highest mip/array slice etc to
  use the same codepath.
2015-08-23 13:20:23 +02:00
baldurk f6b4b2fe22 Change python embedding to get standard library from zip, not a dll
* This seems way more reliable and smaller than shipping a compiled .dll
* For some reason I didn't find this method before (I only knew that
  you could ship the loose files which wasn't a good solution).
2015-08-23 11:17:46 +02:00
baldurk c9877b6d0b Re-jig loading progress bar calculation to be smoother/more informative 2015-07-19 10:57:37 +02:00
baldurk 8213281921 Fix up fetching layer/mip for FBOs on replay 2015-07-18 18:27:34 +02:00
baldurk 0933d96fc9 Add FileChanged notification, use to reload data in image viewer
* Things will get weird if the image changes drastically like in format
  or dimension.
2015-07-15 22:06:33 +02:00
baldurk e40ab9261a Handle edge-case where input layout bytecode doesn't use every element 2015-07-14 21:53:36 +02:00
baldurk 4c988e9e3a Better arcball controls in the mesh viewer
* Tweaked flycam a bit too, but not much.
* Refactored the API/C# side camera classes to avoid exposing a ton of
  stuff just to do relative rotations in the arcball via quaternions.
2015-07-07 15:38:00 +02:00
baldurk edda31248f Render bounding box around mesh, centre & scale arcball on bbox
* The arcball lookat position can also be dragged with alt-click or
  middle click.
* Also supports other elements as position not just magically-selected
  "POSITION" element.
2015-07-06 19:58:45 +02:00
baldurk 95f4011bcb Add option to favour monospaced font for all data. Refs #118
* The option will enable monospaced fonts for all data displays, like
  the list of events, API calls, etc as well as pipeline displays, entry
  of filename/directory in the capture window and many other places.
  Pure UI labelling etc mostly still stays as a serif font.
* A few sizes of controls were tweaked (like headers in the pipeline
  windows) so that they didn't just barely overflow with the larger
  font.
* While looking at this, it became obvious that buffer viewers and
  constant bufferviewers should always display in monospaced regardless,
  so that has been changed.
2015-04-09 21:49:03 +01:00
baldurk 8b9caa6cc2 When executing python scripts temporarily catch exceptions in renderer
* Errors like syntax and runtime errors in python are thrown as
  exceptions. So for when we invoke onto the renderer thread to do some
  work, we need to be able to catch those exceptions otherwise the whole
  program dies. So over the execute, temporarily switch the thread into
  a catching-exception mode, which then gets rethrown on the invoker's
  thread.
* Note that BeginInvoke shouldn't be used by python since the callback
  might happen after the execution has finished (there's no way to wait
  at the moment).
2015-03-29 19:59:40 +01:00
baldurk cca206a356 Fix array indexing crashes, ditch a lot of messing with UAV start slot
* The UAV array is provided as we expect it - with UAVs from 0 onwards
  even if their 'slots' are 4, 5, 6 etc or whatever. UAVStartSlot is
  the slot of the 0th UAV.
2015-02-27 14:07:58 +00:00
baldurk ac926b86d9 Split up RT/RW handling to be less D3D11-centric in texview thumbnails
* In D3D11 the RTs and UAVs have the same namespace, but GL has separate
  framebuffer attachments and images. This change splits up the concepts
  so the D3D11 case is a special case, in a way, and that we can handle
  any generic mix of the two nicely.
2015-02-21 22:39:36 +00:00
baldurk 80329f6e9b Channels selection and mip/slice selection are now stored per-texture
* For each texture you view, it will reset back to mip 0 and slice 0
  as it previously did, and it will also reset the channels back to
  RGB only, which is new behaviour.
* Then each texture remembers those settings, so if you choose to view
  slice 6 & alpha only of a texture any time you switch back to it
  you'll see slice 6 & alpha only.
* It can be disabled in the options, but this is the new default
  behaviour. Possibly in future the zoom level and visible range might
  be rolled into this, but for now I think they might work better as
  global state.
2015-02-14 12:19:13 +00:00
baldurk e8b2abc0a4 Remove old old disable thumbnails code 2015-02-14 12:01:26 +00:00
baldurk 3f5d87f290 Make generic values show up in the mesh viewer 2015-02-10 17:16:32 +00:00
baldurk 72cfee5c0f Add GLSL syntax highlighting 2015-02-09 18:14:20 +00:00
baldurk 6208e3992d Fall back to WARP if D3D11 hardware isn't present. Closes #121
* If hardware support for feature level 11 isn't present, fall back to
  the WARP software rasterizer. This will support everything needed, but
  it certainly won't run well.
* There are loud warnings - I added a debug message to the debug errors&
  warnings window so the status bar will indicate that, and it's in the
  title.
* At most once every 3 weeks there will also be a message box pop up
  when loading a log, to remind the user so that it isn't forgotten, as
  for obvious reasons this is not the intended use-case (hopefully once
  per 3 weeks isn't too often to be annoying).
2015-02-01 19:57:09 +00:00
baldurk b7f9d5b6d0 Generalise drawcall timing to get arbitrary sets of counter values
* Client code can enumerate the IDs of counters that are supported -
  some of these will be general, some will be IHV specific. It can also
  request descriptions of the counters to determine the type of data or
  units. This can be used to 'discover' counters that aren't hard
  coded into renderdoc. I'll want to at least reserve IHV ranges so that
  counter IDs are globally unique, and ideally IHV counters will also be
  predeclared where possible.
* Also the refactor removes some ugly rdctype::array use outside of the
  replay layer and replaces it just with std::vector, which is a nice
  bonus.
2015-01-28 21:15:19 +00:00
baldurk 1b4bf97574 Fix for instance rates not being accounted for on vertex inputs 2015-01-28 02:23:30 +00:00
baldurk 7bf45d043b Fix incorrect null check that could crash with no VS bound 2015-01-26 19:55:42 +00:00
baldurk 0777a87dee Fix mismatch between C# struct and C++ struct (was hidden in padding) 2015-01-26 19:48:19 +00:00
baldurk 06a549cf01 Fix vertex inputs on GL to use input attrib bindpoint mapping 2015-01-26 16:55:07 +00:00
baldurk 9bd5fabe1a Implement axis markers and frustum helper on GL mesh view 2015-01-25 21:11:56 +00:00
baldurk 4674b76930 Remove attributes not used in VS from GL vtx attribute list 2015-01-25 19:55:07 +00:00
baldurk 8318720561 Re-implement GL RenderMesh in the new terms - much simpler!
* Still missing several features:
  - solid shading of 'secondary' data
  - highlighting of vertices/faces/supporting faces
  - helpers like axis markers or frustum
  - post VS data and re-projection
2015-01-25 19:31:13 +00:00
baldurk 22c9775008 Refactor RenderMesh() to now purely render what's specified
* So RenderMesh doesn't pick up anything implicitly from the current
  event, log, pipeline state etc - everything it needs is explicitly
  provided by the config parameters (note this might include a buffer
  generated by postvs data fetching, but the implementation now doesn't
  need to care or treat it as a special case.
2015-01-25 14:04:41 +00:00
baldurk 5425a9d423 Allow opengl types in buffer format string parsing 2015-01-19 02:08:35 +00:00
baldurk ec1a81cf8b Save config file after adding 'recent file'
* This has been bugging me for ages, it's not a problem typically for users
  as the config would be saved on shutdown, but if you're debugging
  renderdoc and you kill the process (by stopping debugging) after loading
  a log but before closing the program, the recent file wouldn't be saved!
2015-01-18 10:54:24 +00:00
baldurk 8b91c8540b Pass through Read FBO, and handle Draw/Read Buffers indirection 2015-01-17 18:49:08 +00:00