Tiago Rodrigues and Baldur Karlsson
472960d92f
Add PIX3 event support to D3D12 driver
...
PIX3 events (from WinPixEventRuntime) are passed as a blob of unformatted parameters which the profiling application must parse and format.
2017-01-26 08:30:47 +00:00
baldurk
74a2da2b11
Handle pixel history for D16 targets directly without failing
2017-01-25 21:48:38 +00:00
baldurk
503e60b6a5
Fix setting GL_TEXTURE_MAX_LEVEL to number of mips, not #mips - 1
...
* This resulted in a lot of textures being incomplete, which could cause
weird problems depending on if mips are used or not.
2017-01-25 20:13:40 +00:00
baldurk
31c29c3149
Give Vulkan shader stage structs in pipeline state consistent names
2017-01-24 12:12:33 +00:00
baldurk
d368cf2919
Require GL_ARB_gpu_shader5 for gl_SampleMaskIn in quad write shader
2017-01-24 10:14:55 +00:00
Steve Legg and Baldur Karlsson
a41c35b764
Fix mesh picking with perspective camera
2017-01-20 16:12:36 +00:00
baldurk
92c697618a
Compile fixes for VS2015 (variable shadowing and 32-bit size_t)
2017-01-18 14:55:49 +00:00
baldurk
43b66df816
Correct byte size calculation for D3D12 array textures
2017-01-18 14:26:36 +01:00
baldurk
a59ebcbc3b
For large D3D12 upload heap buffers, allocate on default heap instead
...
* The cost of memcpy'ing data across to upload heap buffers for initial
contents and maps is significant, so for large buffers it's better to
allocate them GPU-side so we can do GPU copies.
* This also means that maps cannot happen directly, so instead while
reading we allocate a GPU-side copy of the map source data, and
perform a buffer copy instead.
2017-01-18 14:26:11 +01:00
baldurk
112d750e30
Mute nonsense D3D12 debug message
2017-01-18 14:23:22 +01:00
baldurk
70b2976b9a
Protect against crashing if VB is not bound
2017-01-18 13:05:37 +01:00
baldurk
9c1d8ae798
Compile fix for OS X - don't try to print a size_t in assert macro
2017-01-17 23:49:50 +00:00
baldurk
914bb63ffa
Rework error logging of required extensions.
...
* There was some weird clang-format issue with the macro that this
hopefully fixes. It also means less log spam if multiple extensions
are missing.
2017-01-17 21:24:55 +00:00
baldurk
04c24ad855
Variable shadowing compile fix
2017-01-17 20:00:37 +00:00
baldurk
e4a4c701cd
Check GL version number to enable extensions that became core
...
* This means that even if the extension isn't reported in the string
for whatever reason, we still mark it available. It saves on checks
of (GLCoreVersion >= 43 || HasExt[foo]) all over the place.
2017-01-17 19:23:42 +00:00
baldurk
4f8d6d5c70
Add a few last things that need extension checks
2017-01-17 19:11:24 +00:00
baldurk
80e786427b
Update messages if output window contexts fail to create
2017-01-17 18:59:27 +00:00
baldurk
8c91f5a808
Mark capture as degraded if we're missing key hardware capabilities
...
* This includes primarily compute shaders and image load/store
2017-01-17 18:59:07 +00:00
baldurk
a05581621f
Don't use GetBaseFormat/GetDataType where format could be compressed
2017-01-17 18:38:33 +00:00
baldurk
5ea84f84ee
Only re-interpret pixels from float to int if it was an int texture
2017-01-17 17:46:40 +00:00
baldurk
8f55abdde9
Check for extensions during replay for pipeline state save, tex display
2017-01-17 17:46:26 +00:00
baldurk
34834d802f
Check for texture storage extension in vendor check
2017-01-17 16:55:38 +00:00
baldurk
21d6f41c97
Change GLSL shaders to compile at #version 150 and add #extensions
...
* For some #extensions we can fallback to a lesser path (or just drop
that functionality - e.g. displaying cubemap arrays if there's no
extension for it).
2017-01-17 16:55:26 +00:00
baldurk
031ea659be
Fix check for glClipControl to check extension not just function pointer
2017-01-17 16:54:18 +00:00
baldurk
6be852bfa2
Check for extensions needed when creating replay shaders
...
* If a replay shader can't be created we'll just skip the replay
functionality it is needed for.
2017-01-17 16:54:03 +00:00
baldurk
e8456f5d36
Check and save the GLSL version, vs specifically checking for 420
2017-01-17 16:51:26 +00:00
baldurk
ec41661f5f
Remove replay-time use of buffer/texture storage
...
* Of course if the capture used the storage functions during capture,
then they will still be used on replay. We are only removing extra
usage here for internal textures/buffers
2017-01-17 16:47:46 +00:00
baldurk
d214098dce
Create the highest versioned context possible on replay
2017-01-17 11:02:47 +00:00
baldurk
2b722541e7
Compile/warning fixes
2017-01-17 11:02:46 +00:00
baldurk
00ebb7d8a3
Check for SSBO support before introspecting programs for SSBO binds
2017-01-17 11:02:45 +00:00
baldurk
ed358ab8a3
Check extensions properly for GL state fetch and apply
2017-01-17 11:02:45 +00:00
baldurk
97e11a45a3
Fix a minor typo
2017-01-17 11:02:44 +00:00
baldurk
69bb551f22
Make sure enable bits in GL render state are properly extension guarded
2017-01-17 11:02:43 +00:00
baldurk
07df2cc37c
Check for KHR_debug when calling glDebugMessageCallback
2017-01-17 11:02:43 +00:00
baldurk
8fb49d08f3
Reduce minimum requirements for replay to 3.2 + a few extensions
...
* The checking for a capable replay context is centralised so there's
less code duplication between linux (GLX) and windows (WGL)
2017-01-17 11:02:42 +00:00
baldurk
a9fb044874
Pass through texture swizzles on FBO attachments and display
2017-01-17 11:02:41 +00:00
baldurk
16dd02a4a4
Check that texture swizzle extension is available before using it
2017-01-17 11:02:41 +00:00
baldurk
eb5761dabe
Use non-instanced triangle lists to draw text overlay
...
* Mesa GL seems like it doesn't like the instanced draw, for whatever
reason.
2017-01-17 11:02:40 +00:00
baldurk
ae0f6ea3a0
Don't query texture level/layer properties for renderbuffer attachments
2017-01-17 11:02:39 +00:00
baldurk
749434872d
Remove GL_TEXTURE_COMPRESSED_IMAGE_SIZE vendor check
...
* This is even messier than I thought - I didn't realise, but it in fact
varied depending on if the image was initialised with glTexStorage or
glTexImage (or possibly glCompressedTexImage2D).
* Either way, the query is much too unreliable to try and use and work
around, so instead we'll just use the GetCompressedByteSize function
and work out the size ourselves.
2017-01-17 11:02:38 +00:00
baldurk
bb538a7d76
Add emulated versions of extensions we want to use but not require
...
* EXT_direct_state_access emulated by pushing/popping current bind
* ARB_copy_image emulated with framebuffer blits
* ARB_clear_buffer_object emulated with Map + memset/memcpy
* ARB_internalformat_query2 emulated with a limited hardcoded database
2017-01-17 11:02:38 +00:00
baldurk
7450d4f84d
Compile text rendering shaders as GLSL 150 and add extensions needed
2017-01-17 11:02:37 +00:00
baldurk
6252fc23f3
Avoid EXT_direct_state_access or ARB_texture_storage use in vendor check
2017-01-17 11:02:36 +00:00
baldurk
baa18e78af
Check for core versions or extensions before doing vendor checks
2017-01-17 11:02:35 +00:00
baldurk
533080ede0
Check for relevant extensions or core versions for resource dirtying
2017-01-17 11:02:35 +00:00
baldurk
c66dd62a2e
Add more checks for extensions being present, for future use
2017-01-17 11:02:34 +00:00
baldurk
c5dbd7d6f0
Don't allow aliases to overwrite core function pointers
...
* This is a bit of a hack. Mesa seems to return a function pointer for
functions it recognises but doesn't support. So e.g. if you query for
glBindFramebuffer you'll get the implementation, if you query for
glBindFramebufferEXT then you get a stub that errors out.
* So in this case we ensure that any EXT/ARB aliases only set their
function pointer if we don't have the core function already. This will
fix some cases but obviously doesn't help if the core function is the
error-stub and the extension is supported...
2017-01-17 11:02:33 +00:00
baldurk
d2d8a978e4
When creating a dummy shared context, create a pbuffer
...
* It's not valid to try and bind a context with no drawable.
2017-01-17 11:02:32 +00:00
baldurk
61410d10c3
Fix some typos causing mis-aliased functions
2017-01-17 11:02:31 +00:00
baldurk
e596e85f31
Remove VK_LAYER_LUNARG_monitor layer during replay. Refs #490
2017-01-17 10:50:14 +00:00