Commit Graph

62 Commits

Author SHA1 Message Date
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
baldurk f459c63380 Show restart index on GL pipe state, and handle it being disabled 2015-01-15 23:37:17 +00:00
baldurk f013f6fd29 Store index format and topology in drawcall, to accommodate GL
* D3D11 just latches the state from the input assembler state into the
  drawcall when it's being added. GL stores the state per-draw.
2015-01-15 17:17:12 +00:00
baldurk 04f1d4a378 Centralise debug message processing, and allow adding custom warnings
* This will allow the adding of things like 'redundant api call' for calls
  that have no effect, as well as potential problems like drawing with an
  empty viewport, or similar things that are common problems. Reading out-
  of-bounds on buffers etc is a good example of 'defined' behaviour that
  is probably not desired.
* These heuristics could also identify potential performance problems.
* It also supports adding debug messages after log-load time, so you could
  do an additional extra-strength pass, or do a detailed check of one
  draw call (e.g. a broken draw, to try and figure out the problem). If
  there are any unread debug messages, the status bar will flash and the
  debug messages window will show a count as (N).
2015-01-11 00:20:50 +00:00
baldurk 52476118de Support doubles in shader vars natively, not packed in 2*uint32 each 2014-12-02 00:16:12 +00:00
baldurk 551b0372c8 Allow fully flexible display of position&other component on meshes
* You can choose which component will be used as 'position' when rendering
  vertex inputs. Helpful if a position component isn't auto-detected, or
  if you want to render UV co-ordinates onto the screen.
* Instead of fixed TEXCOORD0/Color options for solid shading onto the mesh
  you can choose a secondary column yourself.
* Also the solid shading options are available on vertex output meshes as
  well as inputs.
2014-11-13 18:37:58 +00:00
baldurk 32eadbcade Remember last filename as well as last directory for capturing 2014-10-15 18:45:31 +01:00
baldurk 2cebc9866f Fix WindowFromPoint P/Invoke 2014-10-06 17:40:30 +01:00
baldurk a23f597c99 Fix some stupid typos/errors with commit e749f4287 2014-10-05 22:25:01 +01:00
baldurk 09863d920b [Refs #87: Static Analysis] Fix P/Invoke - C# point varies on x86/x64 2014-10-05 19:01:28 +01:00
baldurk f198e71806 [Refs #87: Static Analysis] Remove unused variables 2014-10-05 19:01:27 +01:00
baldurk 8b0f05ca5e [Refs #87: Static Analysis] Clarify timer member by explicit use 2014-10-05 19:01:26 +01:00
baldurk e749f42876 [Refs #87: Static Analysis] string compare as uppercase or by length 2014-10-05 19:01:25 +01:00
baldurk 9460fbd970 Add feature to globally hook processes to inject indirectly.
* This allows you to hook into processes that are difficult to launch
  directly with the existing functionality in RenderDoc.
* This is rather risky, as it modifies the AppInit_DLLs registry key to
  inject a small shim dll that checks for the desired process and injects
  the full renderdoc.dll. If that registry key got left, or if there was
  some incompatibility with the shim dll, you could have problems. It
  should only ever be used as a last resort if there's no other way to
  capture.
2014-10-05 13:57:11 +01:00
baldurk 2122c5c0a8 Only add log to recent list when it successfully loaded. 2014-09-25 16:26:15 +01:00
baldurk f4de6993bc Fix double support in FormatElement & custom Buffer/CBuffer views 2014-09-17 18:51:00 +01:00
baldurk 61ba671572 Speculative crash fix - cache m_LogViewers locally. Closes #77 2014-09-17 18:08:55 +01:00
baldurk 53eeb9b28e Tweak error since no config is saved (and in-memory one is preserved) 2014-09-17 18:03:26 +01:00