Commit Graph

456 Commits

Author SHA1 Message Date
baldurk c06aeebd3a Crash fix for non-indexed meshes 2016-02-07 18:48:00 +01:00
baldurk 48a03ae21f Only fetch the PostVS data needed for this draw, not the whole buffer
* For instanced draws where there are many instance and each instance is
  a lot, this saves fetching a *ton* of redundant data.
2016-02-07 18:47:45 +01:00
baldurk 793d2690c4 Be more aggressive with null'ing/disposing old data, to garbage collect 2016-02-07 18:47:44 +01:00
baldurk 0992c05ab9 Fix leaking memory in byte[] marshalling case 2016-02-07 18:47:41 +01:00
baldurk 4f784b07d5 Handle array outputs in SPIR-V, add array index to signature parameter 2016-02-07 18:47:36 +01:00
baldurk 0b61607cc7 When loading a log, default back to buffer view showing VSIn 2016-02-07 18:47:35 +01:00
baldurk bd5a6752e2 Use viewport for guessing aspect ratio, not dimensions of depth/colour 2016-02-07 18:47:33 +01:00
baldurk 101d780956 Handle post-vs data being padded/aligned instead of tightly packed 2016-02-07 18:47:33 +01:00
baldurk 8818de4524 Use vertex stride from PostVS data if we're reading it 2016-02-07 18:47:32 +01:00
baldurk 03a2497c6b Don't display semantic index if it's not needed 2016-02-07 18:47:09 +01:00
baldurk b4ebc13c9d Support push constants display in UI 2016-02-07 18:46:59 +01:00
baldurk 5c309d9d34 Refactor handling of resources/binding to be much more flexible
* This will handle the new vulkan binding model with multiple descriptor
  sets and arrays of objects in each binding. It also makes a few tidy
  ups and improvements to other APIs in presentation - will e.g. now
  show thumbnails for vertex and other stages.
2016-02-07 18:46:40 +01:00
baldurk 6051f0c500 Split 'Resources' shader array into readonly/readwrite arrays
* This is preparation for a following commit, might not work on its own
  (mostly untested - just compiling).
2016-02-07 18:46:39 +01:00
baldurk e51cf27321 Get abbreviations from common pipeline state (as they're API specific)
* Also the PipelineStateViewer will set its current 'sticky' API type
  to the common pipeline state, so that when a log isn't loaded we can
  still get API-specific properties that match the last API used.
2016-02-07 18:46:38 +01:00
baldurk ebb9f05c75 Pass through base mip/level for vulkan resources (also for GL textures) 2016-02-07 18:46:37 +01:00
baldurk 534f9943f9 Handle arrays of shader resources in pipeline state 2016-02-07 18:46:36 +01:00
baldurk 8a6d2ebf30 Handle arrays of uniform buffers in descriptor slots 2016-02-07 18:46:35 +01:00
baldurk a012652049 Handle arrays of objects in shaders 2016-02-07 18:46:32 +01:00
baldurk 7dd5760420 Try to handle unbound resources a bit better 2016-02-07 18:46:31 +01:00
baldurk 1503e7f881 Add mousemove/mouseleave handlers for non-PS resources 2016-02-07 18:46:30 +01:00
baldurk e6807ec3a7 Proper display for descriptor sets in pipeline state view 2016-02-07 18:46:29 +01:00
baldurk ba8114936e Render mesh displays as 4x MSAA to make the line rendering a bit nicer 2016-02-07 18:46:23 +01:00
baldurk 879df25850 Implement mesh rendering (wireframe and solid) 2016-02-07 18:46:10 +01:00
baldurk c71191906b Don't do any shader viewer work if the log is closed 2016-02-07 18:45:25 +01:00
baldurk af8addf20e Display if blend is enabled properly 2016-02-07 18:45:18 +01:00
baldurk b363dc1fb5 Vulkan scissor regions are x,y,width,height 2016-02-07 18:45:16 +01:00
baldurk 36d2ffd988 Handle super small buffers in buffer viewer without displaying nothing 2016-02-07 18:45:14 +01:00
baldurk 484d70ddbd Display buffers properly in resource list 2016-02-07 18:45:13 +01:00
baldurk 4ece1ed5b3 Handle vtx binds referencing unset vbuffers (valid if binds are unused) 2016-02-07 18:45:12 +01:00
baldurk 4fe74824b1 Switch buffer offsets and lengths to 64-bit, downcast only where needed 2016-02-07 18:45:06 +01:00
baldurk b569932a71 Update pipeline stage names to Vulkan nomenclature 2016-02-07 18:45:05 +01:00
baldurk 7769e1d672 Change API events view to show { } sections in sub-nodes 2016-02-07 18:44:57 +01:00
baldurk 70b1d241b0 Finish the vulkan pipeline display 2016-02-07 18:43:49 +01:00
baldurk 9d3202ae5f Don't conflict between C# UI and replay output flipping pixel context 2016-02-07 18:43:46 +01:00
baldurk 963986b9e9 Do swapchain resizing properly and re-enable thumbnails (working now?!) 2016-02-07 18:43:36 +01:00
baldurk 4336722e34 Tidy up FetchTexture data for vulkan, fill out all fields properly 2016-02-07 18:43:35 +01:00
baldurk 313f53a820 Remove stored fake backbuffer data, display backbuffer on present calls 2016-02-07 18:43:34 +01:00
baldurk b28428cdf1 Don't try and index into a descriptor set or binding that doesn't exist
* This can happen with unused binds - I think it's valid for a bind in a
  shader to index outside of the descriptor set as long as it's never
  used.
2016-02-07 18:43:15 +01:00
baldurk ee1460dcaa Update C# vulkan pipeline state structs to match 2016-02-07 18:43:00 +01:00
baldurk 448df65773 Protect against framebuffer being unset when not in valid pipeline state 2016-02-07 18:42:29 +01:00
baldurk 238efe31f1 List resources for texture viewer to pick up 2016-02-07 18:42:11 +01:00
baldurk 33fd37282b Clear resource previews to black while thumbnails are still disabled 2016-02-07 18:42:10 +01:00
baldurk f660bdd807 For now, blat resources out into a list by string
* This will do until I figure out how to layout the pipeline viewer
  for resources.
2016-02-07 18:42:08 +01:00
baldurk a25d07cf59 Display cbuffer contents within vulkan pipe viewer
* For now, we just assume that cbuffers are tightly packed according to
  D3D11 rules (matrices, structs, float3/4 are all float4 aligned), and
  once final SPIR-V is generated everything should have explicit
  offsets, strides, and sizes
2016-02-07 18:42:06 +01:00
baldurk 0a0e948e40 Add shader word highlighting for SPIR-V 2016-02-07 18:42:06 +01:00
baldurk 0007b9d63f Use shader reflection variable names if no custom image names are set 2016-02-07 18:41:47 +01:00
baldurk 8832573dbb Expose SPIR-V reflection data to UI 2016-02-07 18:41:45 +01:00
baldurk 8eddd387d7 Add vulkan pipeline state viewer based on D3D11 viewer 2016-02-07 18:41:35 +01:00
baldurk 4e113a08c7 Hack out handling of vulkan pipeline type in texture viewer 2016-02-07 18:41:30 +01:00
baldurk edac1f0bfd Pass vulkan pipeline state along to UI 2016-02-07 18:41:29 +01:00