baldurk
95a70bf0fc
Ditch explicit linear or point sampling in gl tex display shader
...
* It's handled already on the C++ side by binding a point or linear sampler
to that slot, but also it seems that it's not well defined (that I can
see) if texelFetch should sRGB decode or not. On nvidia it seems to, but
on AMD it seems like it doesn't do the decode.
2014-12-05 10:00:28 +00:00
baldurk
9561f88fd5
As a hack for now, don't save/restore D32F_S8 texture data
...
* On nvidia it seems that doing glCopyImageSubData() on a D32F_S8 texture
can cause serious problems, so ignore it for now. We can generally get
away with it, as usually the only depth buffer in this format is the
'main' depth buffer, which isn't used frame-to-frame.
2014-12-05 09:28:34 +00:00
baldurk
637232af14
Use existing texture to fetch number of mips, not copy texture!
2014-12-05 00:51:07 +00:00
baldurk
7b4a8d1c11
Warn about hitting MAP_PERSISTENT sooner
...
* If a buffer gets marked as dirty before being mapped as persistent (e.g.
mapped for write & not invalidate), we won't hit this warning and then if
the buffer map is truly persistent forever, we'll never see the map again
to warn during frame capture!
2014-12-04 23:18:27 +00:00
baldurk
664f0f4d67
Make sure when rendering overlay, only enable indexed enums we need.
2014-12-04 21:56:58 +00:00
baldurk
d7d879f29a
Track if depth bounds test is enabled
2014-12-04 21:29:52 +00:00
baldurk
34b554d0bf
Make sure initial state structures are properly zeroed out.
2014-12-04 21:29:42 +00:00
baldurk
5002d29415
glDepthRange needs to come from the dll hooks for windows
2014-12-04 21:26:48 +00:00
baldurk
b3cf3719ea
Fix for map/unmap to capture properly while idle
2014-12-04 14:59:46 +00:00
baldurk
315f190c49
Calculate the right size (including padding) for D32S8
2014-12-04 14:47:47 +00:00
baldurk
00c9515fbd
Mark SSBOs and atomic counter buffers as dirty when bound
2014-12-04 14:36:02 +00:00
baldurk
99c6719928
Make sure unmap chunk isn't lost and goes in buffer record
...
* If we're ignoring a map it's marked correctly as dirty, but otherwise a
buffer could be mapped once then not touched, not become dirty, and so
we need the unmap chunk in its record.
2014-12-04 14:35:31 +00:00
baldurk
d90f8f0d41
Provide index to SV_VertexID when using index buffer. Refs #113
2014-12-04 14:10:16 +00:00
baldurk
3c05059529
Track our minimal shadow state on a per-context basis
...
* We track as little state as possible - basically only objects bound to
binding points that we need to identify for old-style non-DSA functions.
This is mostly for convenience - the best balance between tracking GL's
_insane_ state vector and having to query everything we want every time.
* Although we don't properly handle multiple contexts, we need to make sure
this state is tracked per context otherwise we can get weird mismatches
and get crashes with e.g. invalid VAOs.
2014-12-03 23:40:03 +00:00
baldurk
efac062cdd
Make sure to apply initial contents before first replay of frame
2014-12-03 23:24:40 +00:00
baldurk
670c0ef7e7
Handle BGRA vertex attributes
2014-12-03 23:22:24 +00:00
baldurk
13c613d757
Handle binding 0 imagetexture
2014-12-03 23:13:38 +00:00
baldurk
850410b1a3
Vertex buffer functions also need to bind the VAO when reading
2014-12-03 21:21:57 +00:00
baldurk
a4e6f0f1d1
Only explicitly bind vertex array object when reading, not executing
2014-12-03 21:20:26 +00:00
baldurk
a5e019d143
Fix glBufferData re-creating, preserve chunk ordering
2014-12-03 20:23:49 +00:00
baldurk
2a43d0d4bf
glCopyBufferSubData should contribute to record update count
2014-12-03 20:19:14 +00:00
baldurk
4bd1f940d6
only use CUBE_POSITIVE_X as a query target for CUBE_MAP
...
* GL_TEXTURE_CUBE_MAP_ARRAY can be used directly as a query target
2014-12-03 20:18:33 +00:00
baldurk
c7576d8a7f
Add resource record parent for VAO when binding buffer
2014-12-03 18:16:50 +00:00
baldurk
d30ce5d6b2
Fixes for replay, and populating hooks (call through hooked func)
2014-12-03 18:16:06 +00:00
baldurk
cb7dd8fa6d
Check that functions are available before doing anything
2014-12-03 16:52:54 +00:00
baldurk
185df924dc
Use proper wglGetProcAddress hook
2014-12-03 16:52:37 +00:00
baldurk
2f48158a89
Add some extensions that we already support, and ARB func aliases
2014-12-03 16:03:19 +00:00
baldurk
907361c4bb
Add glBindMultiTextureEXT - still need to add rest of EXT_dsa funcs
2014-12-03 16:02:40 +00:00
baldurk
431eef4e6d
64-bit compile fixes
2014-12-03 14:10:57 +00:00
baldurk
46a29c7d14
As a slight concession, create a 'fake' VAO to use when 0 is bound
...
* I think this is invalid in the core profile, but it's a simple workaround
and this might be a common problem.
2014-12-03 14:00:23 +00:00
baldurk
8397aa1f28
Handle glBufferData being used to rename/orphan to a new size
2014-12-03 13:57:03 +00:00
baldurk
34b39d79d2
Respect program settings for depth/stencil tests
...
* This means we don't e.g. enable the depth test when it was originally
disabled, and show incorrect 'failure' of the draw to pass the depth test
2014-12-03 13:15:48 +00:00
baldurk
3cac0c339d
Only set readbuffer to GL_BACK after default FBO is bound
2014-12-03 13:08:19 +00:00
baldurk
e8006dde6c
Only end unfinished queries etc if we're replaying from scratch
2014-12-03 13:08:01 +00:00
baldurk
03f631bc82
Actually serialise SRGB decode value (!)
2014-12-03 13:07:46 +00:00
baldurk
192ff9c007
Texbuffer display for GL
2014-12-03 12:31:00 +00:00
baldurk
a05a8d457e
Consider buffers that are bound to xfm feedback to be dirty
2014-12-03 11:53:11 +00:00
baldurk
2a3fde6e51
Special case GL_POINTS as it's enum value 0 (shows as GL_NONE)
2014-12-03 11:45:45 +00:00
baldurk
08174ef277
Serialise transform feedback buffer bindings into feedback record
2014-12-03 11:45:16 +00:00
baldurk
1061948185
Implement AllowFullscreen (or rather, !AllowFullscreen) for win32 GL
2014-12-03 10:41:37 +00:00
baldurk
61909e56c9
Handle shader being deleted before detach (just drop the detach)
2014-12-03 10:29:31 +00:00
baldurk
c0c436f6ed
Make sure to set all sources at once (glShaderSource replaces).
2014-12-03 10:23:31 +00:00
baldurk
6039958ba1
Check for validity of params before trying to serialise
2014-12-03 09:23:30 +00:00
baldurk
d7485ad466
Correctly replay glUseProgram(0)
2014-12-03 09:23:19 +00:00
baldurk
e52981ad47
Display of MSAA textures in GL
2014-12-02 23:28:12 +00:00
baldurk
4aab1172a4
Save out multisample count on default framebuffer
2014-12-02 23:27:03 +00:00
baldurk
46c70e6f69
UTF-8 bugfix (leave room for null terminator)
2014-12-02 22:39:45 +00:00
baldurk
72b8725c69
Serialise element buffer bindings into VAO record
...
* Also some VAO chunks weren't going into the VAO record properly.
2014-12-02 22:39:33 +00:00
baldurk
e868280f3c
Handle missing internal format case
2014-12-02 19:06:10 +00:00
baldurk
2017cdfc35
glBindBuffer sets the 'general' bindpoint buffer regardless of index
2014-12-02 19:02:53 +00:00