Commit Graph

206 Commits

Author SHA1 Message Date
baldurk 4e6c8202b4 Save on unnecessary thrown ArgumentExceptions (convenience) 2014-08-03 15:03:59 +01:00
baldurk b695ba2070 Pass indexable temps through and display in UI. Closes #73
* The storage is rather wasteful (once per state), but the temp registers
  are mutable so could be changed from state to state.
2014-08-03 14:28:27 +01:00
Baldur Karlsson f45315f1cc When copying row-by-row, only copy one row at a time! 2014-07-30 12:54:24 +01:00
Baldur Karlsson c9146bdd9e Move FillCBufferValue function to be member of GLReplay 2014-07-29 17:03:12 +01:00
Baldur Karlsson 513b9572f9 Compile fixes. Whoops. 2014-07-29 17:03:00 +01:00
Baldur Karlsson b26b816d81 Implement FillCBufferVariables for buffer-backed UBOs 2014-07-29 14:07:56 +01:00
Baldur Karlsson c31852532b Use a more friendly enum for BufferBindings array indices 2014-07-29 13:59:57 +01:00
Baldur Karlsson a76d70831a Add a few new glGet functions 2014-07-29 13:59:21 +01:00
Baldur Karlsson 3952dfba2b Save location as vec if variable is not buffer backed 2014-07-28 16:52:43 +01:00
Baldur Karlsson 4e145925d1 Retrieve details of UBOs and variables inside them 2014-07-28 16:21:08 +01:00
Baldur Karlsson a728f3289b move RDCBREAK() OS-implementation from inline function to macro
* It's a little messier as it's easier for the os-specific header to not
  define it and get confusing errors, but that's a one-time problem and
  having an extra function in a callstack and not showing source at the
  point of the RDCBREAK is annoying every time.
2014-07-28 12:17:34 +01:00
Baldur Karlsson cda21724f5 GetTexture and GetBuffer are fully implemented now 2014-07-28 12:04:39 +01:00
Baldur Karlsson 7dc6debb19 Fetch width/height/depth for replay side textures (fake BB etc) 2014-07-28 12:04:29 +01:00
Baldur Karlsson df86071362 Return correct ResourceFormat for GL depth formats 2014-07-28 12:03:54 +01:00
Baldur Karlsson c956d8a6cb GetByteSize respects align parameter, calculate for textures 2014-07-28 11:32:16 +01:00
Baldur Karlsson 8d8b308859 Fix typo 2014-07-28 11:31:50 +01:00
Baldur Karlsson a3cdece239 Determine creationflags throughout initial read pass 2014-07-28 11:31:45 +01:00
Baldur Karlsson 6d7283f580 Fetch current framebuffer bindings per-draw 2014-07-28 11:27:19 +01:00
Baldur Karlsson 9fda74fc07 Add a button on the texture viewer that flips the tex in Y
* Useful for systems that render OpenGL upside down with a final flip,
  for example.
2014-07-28 10:28:28 +01:00
baldurk d10e9e239f On x86 windows IsWow64 returns false always. Closes #66
* On x64 windows IsWow64 returns true for 32bit programs, but on x86
  windows there is no such thing as Wow64 so it returns false. Detect this
  by checking our own processes Wow64 nature (which should always return
  true if Wow64 is a thing).
2014-07-27 22:24:12 +01:00
baldurk 6e9b08e382 Add faint default working directory when textbox is 'blank'
* If the working directory is empty, the directory containing the exe is
  used instead, make this more clear in the UI.
2014-07-25 10:28:28 +01:00
baldurk 6ab037f952 Erase descriptor before filling it out 2014-07-25 10:06:21 +01:00
baldurk ca043bf3e2 Add ability to view buffer elements as hex with xint/xshort/xbyte 2014-07-25 08:58:49 +01:00
baldurk 74a0330271 Ensure C# UI uses consistent culture on all threads. Closes #72
* This means that e.g. decimal separator will always be . and similar
  effects, which avoids the need to have culture specific formatting or
  special-case handling around CSV export etc.
2014-07-23 08:36:05 +01:00
baldurk e94726cbc1 linux compile fixes 2014-07-22 10:46:19 +01:00
baldurk 18d6368853 register(bX) for cbuffers, only bind and copy stencil when valid 2014-07-18 00:07:43 +01:00
baldurk 07b41426a2 Add RGBA value prefixes, only print valid elements, preview depth 2014-07-18 00:07:18 +01:00
baldurk 9075812226 Pass stencil as int32_t so depth or stencil of -1 indicates no data 2014-07-18 00:03:04 +01:00
baldurk e462ab15b3 Collect depth and stencil values before/after.
* This code is just to test if the method works, it's super ugly and needs
  to be tidied up (as does this whole function!)
2014-07-17 21:13:33 +01:00
baldurk b09df40cda Don't use operator[] in case id isn't valid (creating empty entry) 2014-07-17 12:32:56 +01:00
baldurk 43229f2145 Drain annotation queue at end of frame to include final EndEvents 2014-07-16 09:27:09 +01:00
baldurk 2d299961e1 Properly quote parameters of xcopy to handle spaces in paths 2014-07-15 17:34:59 +01:00
baldurk 7f6e960d85 Bake in range-select min and max when opening a pixel history view
* I'm not sure if this 'hidden' latched UI state is good or bad, but it
  means the colours are visible if you've adjusted the range way outside
  of 0-1.
2014-07-15 12:06:25 +01:00
baldurk ddb2578662 Set a depth-stencil state that tests, writes, but trivially passes
* Occlusion queries seem to be unhappy with a depth-stencil state that
  performs no tests and sometimes can produce incorrect results. This
  appears to make the queries more reliable and fixed cases where depth
  clip was showing as discarding pixels incorrectly.
* There's still something weird going on here, I'm not super happy with it.
2014-07-15 12:02:24 +01:00
baldurk 844f080300 Change priority of node background colours, so select colour works 2014-07-13 18:58:47 +01:00
baldurk a2b288ec7e Test shader discard first (unconditionally) and drop dirty flags
* Also do a full replay after the shader discard test as there seems to be
  some kind of D3D/driver bug that can cause false positives on test
  failures.
2014-07-13 18:58:46 +01:00
baldurk 3bb382d9cf Further progress on pixel history view
* Added simple UI
* Don't apply SRGB curve to alpha data
* Account for clear calls not returning occlusion query results, and for
  depth/colour clears.
2014-07-13 18:58:45 +01:00
baldurk 8ef17e41e1 Allow specifying a background colour per-column on a TreeListNode 2014-07-13 18:57:39 +01:00
baldurk 4ff1355a10 Add D3D11 driver side call to fetch drawcall by event ID 2014-07-13 18:57:38 +01:00
baldurk 53afb34e71 For each matching event determine which tests it fails (if any). 2014-07-13 18:57:34 +01:00
baldurk cbcfc135b3 Interpret/convert pixel values as appropriate to fully expanded form 2014-07-13 18:57:20 +01:00
baldurk 93ac535dd0 Check whether tests are on/off and detect trivial test failures 2014-07-13 18:57:19 +01:00
baldurk 726eed3d29 Create a texture to store before/after values as we go along
* In the case where blending is disabled this gives us the passing shader
  output value (when blending is enabled we need to get the in between
  fragments, if any.
2014-07-13 18:57:18 +01:00
baldurk d832e33b0c First pass of pixel history impl (not complete)
* Uses occlusion queries to determine which events touch a given pixel
  (by replaying with all tests disabled except scissor, and scissoring to
  the pixel).
2014-07-13 18:56:54 +01:00
baldurk 4e51aab9e5 Add externally visible API to query for pixel history 2014-07-13 18:56:45 +01:00
baldurk 25c4771589 Add drawcall flags for clearcolour/cleardepth 2014-07-13 18:55:04 +01:00
baldurk 85a4a8cccd Add uint8_t -> float SRGB conversion function (using LUT) 2014-07-13 18:55:03 +01:00
baldurk d83adf351b Protect against the case of setting UAVStartSlot=0, NumUAVs=0
* Caused the render state tracking to get confused (as UAVStartSlot is
  used to determine the number of RTVs) and led to weird inconsistent
  states being restored. Most obviously led to RTs not being set when
  they should have been on replaying and drawcalls going missing.
2014-07-13 15:14:32 +01:00
baldurk ecfa6dbe7b Don't misidentify RTs as UAVs if UAVStartSlot is mis-set to 0 2014-07-13 15:14:27 +01:00
baldurk 6cb65e8569 Handle SemanticName being NULL in D3D11_SO_DECLARATION_ENTRY
* NULL specifies that a gap should be made/skipped in the output data.
* This would crash before but now serialises NULL as "" since that's an
  invalid SemanticName (must be NULL or name a semantic). This will still
  read old logs fine but old programs will not do the right thing on new
  logs.
2014-07-05 12:49:14 +01:00