baldurk
f8bf111e9a
Hook all modules, redundantly but safely, on each LoadLibrary()
2014-08-09 00:04:06 +01:00
Baldur Karlsson
ec683ea474
Make sure outputs are always erased
2014-08-08 14:01:02 +01:00
Baldur Karlsson
2947e508a6
Fix array overrun
2014-08-08 14:00:50 +01:00
Baldur Karlsson
9eb007f04d
Sort of handle separable programs and program pipelines
...
* Need to find a better way of solving the non-immutable-shader-reflection
given baked in uniform values. Probably expose the uniform values mapping
to the user, and for D3D it just becomes trivial and unchanging.
* Also I need to create separable programs per-shader for use for
reflection in that case, but thanks to the stupid gl_PerVertex
redeclaration that becomes a nightmare.
2014-08-08 14:00:32 +01:00
Baldur Karlsson
9925392042
Handle half floats as well for position data
2014-08-08 13:56:31 +01:00
Baldur Karlsson
e19daa58e3
Check bindpoint isn't -1 (for non-buffer-backed uniforms)
2014-08-08 11:15:16 +01:00
Baldur Karlsson
0c5a549633
Add uint type
2014-08-08 10:41:47 +01:00
baldurk
6b74ce2f65
Add slight delay before calling PixelHistory to allow for painting
2014-08-07 21:43:57 +01:00
baldurk
0202af73da
Fetch SV_Coverage value and fill in semantic data. Closes #74
2014-08-06 23:15:28 +01:00
baldurk
4d4243d5bc
Fix reference to renamed variable
2014-08-06 22:36:37 +01:00
baldurk
36a67611e5
Handle a few declaration opcodes that had gotten missed
2014-08-06 22:35:47 +01:00
baldurk
d3f867d5d3
Set a sane tab order on dialogs
2014-08-06 22:21:27 +01:00
Baldur Karlsson
81ee6a47b0
Refresh module handle if NULL when hitting GetProcAddress
...
* This might be a more serious problem in future...
* We only hook all loaded modules once, at init time, in Win32_IAT_EndHooks
* If a LoadLibrary call afterwards implicitly loads some modules we don't
see them. Potentially we should rehook all loaded modules again each time
LoadLibrary is called but then there would be a lot of redundant work
unless we tracked module unload/loads to see if a module has been hooked
before or not. For now assume we don't need to hook these modules and
get away with just updating module handles
2014-08-06 15:43:17 +01:00
Baldur Karlsson
68e47d3ae2
Skip hooking fraps via IAT for compatibility reasons
2014-08-06 15:43:17 +01:00
Baldur Karlsson
f3cc56573f
Ignore modules with a invalid DOS magic number
...
* Seen in the wild some HMODULEs come back pointing 2 bytes after the real
module base address, and so without the magic number. I don't know why
but I can't assume anything about the behaviour so I ignore these modules
to avoid crashes.
2014-08-06 15:43:16 +01:00
Baldur Karlsson
12a30a7b97
Add IAT based hooking to allow hooking 64bit opengl32.dll
...
* Needs vigorous testing in as many situations as I can think of, not least
32bit, 64bit, D3D11, D3D9, OpenGL, managed apps, different windows SDKs,
delay loading dlls (not sure if these will work), statically linked libs,
LoadLibrary + GetProcAddress
* Credit goes to jslutter for originally bringing it to my attention &
suggesting it.
* References:
http://msdn.microsoft.com/en-us/magazine/bb985992.aspx
http://msdn.microsoft.com/en-us/magazine/cc301808.aspx
http://www.codeproject.com/Articles/6265/Process-wide-API-spying-an-ultimate-hack
2014-08-06 15:43:16 +01:00
Baldur Karlsson
23543d6a43
length returned from program introspection includes space for '\0'
2014-08-06 15:43:00 +01:00
Baldur Karlsson
c648904cba
DebugMessage description is an ascii string
2014-08-06 15:42:33 +01:00
Baldur Karlsson
2e3a3ac175
Serialise depth function as part of render state
2014-08-06 12:27:46 +01:00
Baldur Karlsson
9bf0ee93b6
Typo using wrong blend GLenum for source alpha
2014-08-06 12:26:51 +01:00
baldurk
9f9411b758
Merge pull request #75 from valeriog-crytek/master
...
Added debugging support for GATHER4* opcodes.
2014-08-05 17:57:47 +01:00
valeriog
8452d0a12f
Added debugging support for GATHER4* opcodes.
...
Fixed sampler state setting in LD/SAMPLE opcodes when debugging non-vertex shaders.
2014-08-05 14:44:20 +02:00
Baldur Karlsson
51b840844e
Handle default case in switch
2014-08-05 11:28:09 +01:00
baldurk
15f98e3749
Show pixel history events in the timeline bar
2014-08-03 16:25:14 +01:00
baldurk
fb6b4a98b0
Show the pixel history tab early, fill it in with data when ready
2014-08-03 16:04:34 +01:00
baldurk
6fa46b359e
Implement right click options to debug or hide failed events
2014-08-03 15:54:40 +01:00
baldurk
b230be570f
Inherit channel visibility from viewer, display inherited state
...
* A label is shown at the top of the pixel history showing the range
display and visible channels. The channel visibility behaves the same as
in the texture viewer - 2 or more and the other channels display as black
and 1 channel displays grayscale.
2014-08-03 15:32:52 +01:00
baldurk
aeb6ae3bcb
Explicitly list stencil as hex with 0xXX form.
2014-08-03 15:04:24 +01:00
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