baldurk
dcbba16af5
Don't assign "" to elems as it can later get free()d invalidly
2014-08-13 09:32:53 +01:00
baldurk
ff371ee768
Verify that texture ID is found as tex2d before proceeding
2014-08-12 19:11:59 +01:00
baldurk
8158af7a9f
Attempt to make separable shader prog, add input/output fetching
...
* Also moved shader reflection code into separate file
2014-08-12 17:01:18 +01:00
baldurk
ebb5894010
If semantic is empty and we have variable name, use that instead
2014-08-12 16:47:31 +01:00
baldurk
49ab71181c
Add some system attributes from GL
2014-08-12 16:47:00 +01:00
baldurk
38866f9829
Update TODO
2014-08-12 16:46:45 +01:00
baldurk
fceabf7948
Explicitly handle initing from empty arrays, and assign NULL or ""
2014-08-12 16:46:35 +01:00
baldurk
0c52714def
Remove a loop that doesn't need to be there any more
2014-08-09 01:46:00 +01:00
baldurk
e7ab52cd22
Skip a few core modules
2014-08-09 01:45:43 +01:00
baldurk
9beaabb83b
Make the lock only cover the ApplyHook function
2014-08-09 01:45:11 +01:00
baldurk
1b0eae755a
Bail out immediately if IAT entry is already hooked
...
* This avoids going into VirtualProtect changing the page access while code
may potentially be executing these areas of memory (since the module is
hooked, and may have returned to user code)
2014-08-09 01:44:45 +01:00
baldurk
aa690d7183
Add lock around hook apply function
2014-08-09 00:36:15 +01:00
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