Commit Graph

  • 040db37a28 Fix descriptor copies to be one per descriptor type Billy Laws 2022-09-29 21:13:48 +01:00
  • d482e0ea98 Fix shader stage iteration to not miss the pixel stage Billy Laws 2022-09-29 21:11:46 +01:00
  • 0b808cc22b Use Sint/Uint attribute type in place of Sscaled/Uscaled Billy Laws 2022-09-29 21:09:58 +01:00
  • 92ce220d3a Ignore constant buffer selector size for updates Billy Laws 2022-09-29 21:05:04 +01:00
  • 33f16ca26e Handle unmapped blocks in CachedMappedBufferView Billy Laws 2022-09-29 21:04:20 +01:00
  • 5c0e4a839d Fix SW BC2 decoding pitch Billy Laws 2022-09-29 21:01:47 +01:00
  • 60863fa162 Make viewports fallback to viewport 0 when their dimensions are invalid Billy Laws 2022-09-29 20:57:41 +01:00
  • 586f872655 Update indexed quad conversion for new API Billy Laws 2022-09-29 20:56:45 +01:00
  • 498b4966d3 Avoid crashing on unmapped buffers Billy Laws 2022-09-29 20:56:11 +01:00
  • 9f2b20443b Implement Maxwell3D draws Billy Laws 2022-09-29 20:55:08 +01:00
  • 5020478ace Always rebind pipeline if it has changed from the previous draw Billy Laws 2022-09-29 20:54:17 +01:00
  • af1b4ca4f8 Skip clears if attachments are invalid Billy Laws 2022-09-29 20:53:41 +01:00
  • 01a5e95ce1 Implement non-indexed quad conversion support in new GPU Billy Laws 2022-09-29 20:50:47 +01:00
  • d42814bdc1 Add callback for when non-Maxwell3D engines alter pipeline state Billy Laws 2022-09-29 20:46:42 +01:00
  • 7133c5d6b3 Drop exclusiveSubpass in favour of only ending RPs when attachments change Billy Laws 2022-09-29 20:43:24 +01:00
  • a3f38c0cf7 Add perfetto tracepoints to async record Billy Laws 2022-09-29 20:43:03 +01:00
  • 6dfef095e8 Up default record slot count to 6 Billy Laws 2022-09-29 20:42:01 +01:00
  • 7d3a117a6f Use a spinlock for descriptor set allocator Billy Laws 2022-09-29 20:36:30 +01:00
  • 78ddd03d1f Mark newly allocated descriptor slots as active Billy Laws 2022-09-29 20:36:10 +01:00
  • 0867c593be Support binding pipelines in state updater Billy Laws 2022-09-29 20:35:34 +01:00
  • f42a0df72c Use ctSelect register for colour targets and impl null color attachments Billy Laws 2022-09-29 20:32:52 +01:00
  • 38aad21d29 Share single flag variable for Maxwell3D batch draw/constant buffer update Billy Laws 2022-09-29 20:29:29 +01:00
  • bd7eee8e2b Optimise GPFIFO command processing Billy Laws 2022-09-29 20:26:48 +01:00
  • 2cdf6c1fe6 Add branch hint attributes to a couple branches Billy Laws 2022-09-29 20:25:31 +01:00
  • b310b99bdc Handle unmapped ranges in TranslateRange Billy Laws 2022-09-29 20:20:57 +01:00
  • acfa58ea8c State uopdater MERGEBACK desC Billy Laws 2022-09-23 22:12:26 +01:00
  • 68b6b20f78 Bunch of cleanup/bugfixes for initial pipeline desc set impl Billy Laws 2022-09-23 22:10:36 +01:00
  • eb4a9bab11 Mark freshly allocated descriptor slots as active Billy Laws 2022-09-23 22:08:03 +01:00
  • f3184cdff1 Reorder active descriptor set slots to end of list Billy Laws 2022-09-23 22:06:50 +01:00
  • 128b68d8b2 Avoid resetting command buffers manually it's implicit Billy Laws 2022-09-23 22:05:52 +01:00
  • e1717ed811 Implement Maxwell samplers Billy Laws 2022-09-22 00:13:57 +01:00
  • f1600f5ad0 Support allocating into spans in the linear allocator Billy Laws 2022-09-22 00:12:30 +01:00
  • 04cea9239f Implement descriptor set updating through StateUpdater Billy Laws 2022-09-22 00:11:35 +01:00
  • d174ca950b Revert "Reset executor command buffers asynchronously" Billy Laws 2022-09-21 21:02:45 +01:00
  • 2bbe975ea7 Reset executor command buffers asynchronously Billy Laws 2022-09-19 17:44:52 +01:00
  • 054d32567d Allow mutation of input data by callback in CircularQueue::AppendTranform Billy Laws 2022-09-19 14:45:00 +01:00
  • 7c9212743c Implement asynchronous command recording Billy Laws 2022-09-19 14:38:36 +01:00
  • a197dd2b28 Allow for creating signalled fence cycles Billy Laws 2022-09-19 14:36:44 +01:00
  • 542651232b Add a mutex to allow preventing buffer recreation Billy Laws 2022-09-19 14:36:24 +01:00
  • 379b4f163d Implement popping from CircularQueue Billy Laws 2022-09-19 13:29:05 +01:00
  • 6d9dc9c6fb Implement some more of Draw Billy Laws 2022-09-18 16:36:05 +01:00
  • 3b26f4f48a Expose way to check inter-pipeline descriptor compatibility Billy Laws 2022-09-18 16:31:25 +01:00
  • 943a38e168 Implement StateUpdater for rapid recording of VK state updates Billy Laws 2022-09-18 16:21:21 +01:00
  • 7b4da52445 Add a fast binding sync path for when only one cbuf has changed Billy Laws 2022-09-18 16:14:24 +01:00
  • 89edd9b303 Reset megabuffer binding for disabled vertex buffers Billy Laws 2022-09-18 15:33:56 +01:00
  • 6a1615a104 Expose color and depth attachments to Draw Billy Laws 2022-09-18 15:32:51 +01:00
  • aae957819e Simplify BufferView locking by requiring buffer manager be locked Billy Laws 2022-09-18 15:30:24 +01:00
  • 9449b52f36 Reduce minimum megabuffer alignment to 128 bytes Billy Laws 2022-09-18 15:28:23 +01:00
  • b3cf9c40ba Update megabuffer execution/sequence numbers after updating an allocation Billy Laws 2022-09-18 15:27:47 +01:00
  • 4b2b6fc6e9 Avoid calling SynchronizeGuest when attempting to megabuffer unless necessary Billy Laws 2022-09-18 15:26:49 +01:00
  • e5919e84a1 Pipeline state if statment cleanups Billy Laws 2022-09-17 13:16:28 +01:00
  • bf536aa168 Sync pipeline descriptors every draw Billy Laws 2022-09-17 13:15:32 +01:00
  • 9223d7f524 Fix descriptor initialisation order Billy Laws 2022-09-17 13:14:05 +01:00
  • 4652cc5a0a Avoid parsing descriptors for disabled shader stages Billy Laws 2022-09-17 13:12:28 +01:00
  • 3456fb39fa Fix pipeline to shader stage conversion when filling in shader infos Billy Laws 2022-09-17 13:10:23 +01:00
  • a9213debc7 Implement constant buffer reading Billy Laws 2022-09-17 13:10:01 +01:00
  • afcfe8a7fa Don't update scissor state >0 unless multiview is supported Billy Laws 2022-09-17 13:09:36 +01:00
  • 55d77b7eb0 Update user code for new megabuffering Billy Laws 2022-09-17 13:09:06 +01:00
  • cc776ae395 Keep track of an 'execution number' in CommandExecutor Billy Laws 2022-09-17 13:05:48 +01:00
  • 99a34df4cc Avoid trapping frequently synced buffers by using megabuffer copies Billy Laws 2022-09-17 12:53:50 +01:00
  • a24aec03a6 Rework per-view megabuffering to cache allocs in the buffer itself Billy Laws 2022-09-17 12:46:31 +01:00
  • b810470601 Invalidate HLE macro state on macro updates Billy Laws 2022-09-15 22:35:02 +01:00
  • 2360ca24da Implement constant buffer and storage buffer pipeline descriptor types Billy Laws 2022-09-15 22:32:19 +01:00
  • 25255b01c7 Keep track of more pipeline descriptor information Billy Laws 2022-09-15 22:27:35 +01:00
  • ad0275dbef Expose active pipeline for access by Maxwell3D class Billy Laws 2022-09-15 22:26:00 +01:00
  • 6e22373b59 Add array support to AllocateUntracked Billy Laws 2022-09-15 22:22:46 +01:00
  • 388cff3353 Implement simple pipeline transition cache Billy Laws 2022-09-14 23:13:00 +01:00
  • 302b2fcc3f Force flush when dirty refresh returns true Billy Laws 2022-09-14 23:12:40 +01:00
  • ec4ea5c5d7 Supply dispatcher manually for shader creation Billy Laws 2022-09-14 22:06:07 +01:00
  • 3404a3abdb Implement macro HLE for instanced draw macros Billy Laws 2022-09-14 22:01:50 +01:00
  • cf0752f937 Use NCE memory tracking for guest shaders Billy Laws 2022-09-14 21:58:05 +01:00
  • 19a75c3f65 Bind all pipeline states to main pipeline dirty state Billy Laws 2022-09-14 21:56:32 +01:00
  • a04d8fb5cf Setup minimal viewport Vulkan pipeline state Billy Laws 2022-09-14 21:55:19 +01:00
  • fe51db366b Mark all dirty resources as dirty initially Billy Laws 2022-09-14 21:54:33 +01:00
  • abfa5929f1 Treat vertex buffers with base addr 0 as disabled Billy Laws 2022-09-14 21:54:01 +01:00
  • e71ca05f19 Avoid bitfields for signed enum types in PackedPipelineState Billy Laws 2022-09-14 21:53:16 +01:00
  • 2f2b615780 Add dynamic state support to VK graphics pipeline cache Billy Laws 2022-09-14 21:50:59 +01:00
  • ad045058ee Cleanup some redundant comments and includes in pipeline state Billy Laws 2022-09-12 18:03:40 +01:00
  • 9b05c9c0c3 Introduce a pipeline manager and partial pipeline object Billy Laws 2022-09-10 21:03:01 +01:00
  • 2c1b40c9a8 Add some missed pipeline state members used by Hades Billy Laws 2022-09-10 21:00:32 +01:00
  • 0c6fa22c6b Introduce pipeline shader stage state Billy Laws 2022-09-10 20:55:55 +01:00
  • a6bb716123 Move packed pipeline state to a seperate file Billy Laws 2022-09-10 20:51:14 +01:00
  • 4dcbf5c3a0 Drop the caching aspect of shader manager entirely Billy Laws 2022-09-10 20:33:01 +01:00
  • e77e4891dc Tidy up Maxwell 3D regs a bit Billy Laws 2022-09-10 20:29:47 +01:00
  • 405d26fc22 Introduce Maxwell 3D shader state Billy Laws 2022-09-09 22:46:43 +01:00
  • 6865f0bdaf Transition color blend state to packed pipeline state Billy Laws 2022-09-06 21:14:40 +01:00
  • 7049a521d2 Use Vulkan types directly in PackedPipelineState where possible Billy Laws 2022-09-06 20:51:24 +01:00
  • effeb074b6 Move pipeline cache Key to cpp file and rename to PackedPipelineState Billy Laws 2022-09-06 20:09:23 +01:00
  • e1512c91a0 Transition depth stencil state to pipeline cache key Billy Laws 2022-09-06 20:00:37 +01:00
  • 1f844e2c18 Transition rasterization state to pipeline cache key Billy Laws 2022-09-06 19:23:13 +01:00
  • 9a6efb091c Transition tessellation state to pipeline cache key Billy Laws 2022-09-06 19:22:27 +01:00
  • ae5d419586 Transition input assembly state to pipeline cache key Billy Laws 2022-09-06 18:41:29 +01:00
  • 3f9161fb74 Transition vertex input state to pipeline cache key Billy Laws 2022-09-06 18:16:25 +01:00
  • ffe24aa075 Introduce a base pipeline cache key starting with RTs Billy Laws 2022-09-06 18:05:28 +01:00
  • 1e8f7d7fcb Implement dynamic pipeline state Billy Laws 2022-09-03 22:08:03 +01:00
  • a94040ac7d Add default cases to enum conversions where necessary Billy Laws 2022-09-03 22:02:42 +01:00
  • 6e55d4dcf4 Implement color blend pipeline state Billy Laws 2022-09-03 22:01:59 +01:00
  • cb11662ea5 Implement depth stencil pipeline state Billy Laws 2022-09-03 12:36:56 +01:00
  • 2484a2d6b5 Add A1R5G5B5Unorm and S8Uint formats Billy Laws 2022-09-02 23:10:53 +01:00
  • 690e96bce0 Implement rasterization pipeline state Billy Laws 2022-09-02 15:29:18 +01:00