Commit Graph

338 Commits

Author SHA1 Message Date
Jack Andersen 05c26a535b OpenGL and metal rendering interface upgrades 2017-03-13 21:02:53 -10:00
Jack Andersen 73891af56a Add frontface culling support to Metal 2017-03-10 11:07:29 -10:00
Jack Andersen ca20aea834 Add front-face culling support 2017-03-10 10:38:00 -10:00
Jack Andersen 3b7a5781f5 OpenGL and Metal fixes 2017-03-05 13:34:24 -10:00
Jack Andersen a547eb9dbb Runtime shader cache fixes 2017-03-05 12:59:58 -10:00
Jack Andersen 03f155fcf5 Move xxhash to boo; cached shader components 2017-03-04 21:54:58 -10:00
Jack Andersen 8bcac27c10 Fix updated glew for Windows 2017-02-24 21:58:09 -10:00
Jack Andersen 0cc794f49d Update glew 2017-02-23 22:26:27 -10:00
Jack Andersen 71593afe50 More Vulkan fixes 2017-02-15 18:47:31 -10:00
Jack Andersen 3197142d1f Vulkan window resize fixes 2017-02-15 17:17:18 -10:00
Jack Andersen 9af8ec3d23 Vulkan Win32 fixes 2017-02-15 13:10:30 -10:00
Jack Andersen bb227b9cc0 Solve some D3D12 validation errors and warnings 2017-02-04 08:23:08 -10:00
Jack Andersen 4fb95046a8 Add shader dump to Metal compile failure 2017-01-29 18:14:58 -10:00
Jack Andersen ed8cc3a57b Conform D3D and Vulkan backends 2017-01-28 21:26:42 -10:00
Jack Andersen 80e93a8e38 Mipmapped array textures 2017-01-28 17:56:17 -10:00
Jack Andersen d6b54a3718 D3D11 dynamic texture load fix 2017-01-21 23:04:37 -10:00
Jack Andersen 594d590a55 D3D and Vulkan sync 2017-01-20 14:19:18 -10:00
Jack Andersen ee9f3efe61 Hold shader data bindings through to rendering worker 2017-01-19 17:52:40 -10:00
Jack Andersen f0e8e0a1fa Synchronous lifetime control of AudioQueue on macOS 2017-01-18 10:56:26 -10:00
Jack Andersen d309f124b9 More stable D3D11 resource residency 2016-12-11 13:29:08 -10:00
Jack Andersen 1177d50eda Metal pool buffers 2016-12-11 10:20:29 -10:00
Jack Andersen c057068e64 use hash table for pool buffers 2016-12-10 20:18:41 -10:00
Jack Andersen 25fadc7348 Windows sync 2016-12-10 15:50:26 -10:00
Jack Andersen fa45c6750a macOS HIDPI fixes; buffer pools 2016-12-09 16:31:50 -10:00
Jack Andersen 528c572671 Windows Fixes 2016-09-18 15:02:33 -10:00
Jack Andersen 516e5fbe0e Also restore Metal scissor rect 2016-09-11 19:34:45 -10:00
Jack Andersen 4cffc6e4ec Metal viewport restore fix 2016-09-11 19:28:54 -10:00
Jack Andersen ac98d6eac2 Metal resolveBindTexture viewport restore 2016-09-02 19:17:47 -10:00
Jack Andersen e92e6d7c4c Full spelling of 'OpenGL' for enum consistency 2016-08-23 18:33:20 -10:00
Jack Andersen c77fe94313 Disable depth clamp in Vulkan shaders 2016-08-08 08:21:14 -10:00
Jack Andersen 3d96463db7 Better Metal shader error handling 2016-08-03 13:45:52 -10:00
Jack Andersen 758be7d76c Use rectangle intersect for blitting safety 2016-08-01 19:54:01 -10:00
Jack Andersen 6c12cd0ce8 Flush out state for offset uniform bindings 2016-08-01 15:59:03 -10:00
Jack Andersen de0699ab8d D3D12 render to texture fixes 2016-08-01 13:24:01 -10:00
Jack Andersen 29364a8024 D3D sync 2016-07-31 18:32:27 -10:00
Jack Andersen 21548bada8 Use GEQUAL compare for Metal depth compare 2016-07-31 12:39:05 -10:00
Jack Andersen 2ec943f0b2 Metal platform fixes 2016-07-31 10:25:02 -10:00
Jack Andersen 0ee5944387 Comment out annoying warnings 2016-07-30 18:45:03 -10:00
Jack Andersen bec368dfe7 support for nullptr in texture binding array 2016-07-30 16:05:20 -10:00
Jack Andersen c01b0b4c6a Vulkan resolveBindTexture fix 2016-07-29 18:38:33 -10:00
Jack Andersen e70da4b4a5 Vulkan depth clear fix 2016-07-26 20:33:42 -10:00
Jack Andersen d6063f4a4d Vulkan render-target fixes 2016-07-26 18:13:34 -10:00
Jack Andersen cb2b33a42b Vulkan validation fixes 2016-07-26 17:38:00 -10:00
Jack Andersen 55be829aca Vulkan validation layer fixes 2016-07-26 16:17:16 -10:00
Jack Andersen d71c01e1d7 Smart pointer usage in Vulkan.cpp 2016-07-20 12:19:53 -10:00
Jack Andersen 66c64cde08 Fallback flow for graphics APIs 2016-07-20 07:14:18 -10:00
Jack Andersen 6473014178 Ensure MessageBox call only emitted for Windows 2016-07-17 11:18:28 -10:00
Jack Andersen 3076c0525d Add preliminary Win32 Vulkan support 2016-07-17 11:15:57 -10:00
Jack Andersen 44e8317d49 Refactor GLSL shader bindings 2016-07-07 14:05:22 -10:00
Jack Andersen f4dc3626e5 sRGB mapping working on Intel; other platforms need testing 2016-07-01 19:19:28 -10:00
Jack Andersen 0c99623aa9 Vulkan platform conformances 2016-07-01 17:44:57 -10:00
Jack Andersen 295d100ca3 Initial vulkan rendering within URDE 2016-06-30 16:30:29 -10:00
Jack Andersen 6504bfc8c8 Removed double pipeline cache free 2016-06-29 19:42:27 -10:00
Jack Andersen 0e48afcc02 Initial working booTest on Vulkan 2016-06-29 18:54:29 -10:00
Jack Andersen fba6d10b37 Use Vulkan Blit command rather than Copy 2016-06-28 16:00:02 -10:00
Jack Andersen b04257c992 Update booTest pipeline for Vulkan 2016-06-28 15:22:13 -10:00
Jack Andersen c7df255c24 Several Vulkan bug fixes, state setup validates 2016-06-26 18:33:01 -10:00
Jack Andersen fb259a7d12 More Vulkan bug fixes 2016-06-25 14:33:22 -10:00
Jack Andersen e320121df6 Vulkan backend bug fixes 2016-06-24 21:04:58 -10:00
Jack Andersen 9bc1193e3f Update glslang, some Vulkan bug fixes 2016-06-23 17:03:06 -10:00
Jack Andersen f76caba013 Update glslang; GCC compatibility fixes 2016-04-15 10:41:24 -10:00
Jack Andersen 5afdb62a39 Metal depth range 2016-04-04 16:37:46 -10:00
Jack Andersen dc7da6aa21 D3D depth range 2016-04-04 16:25:55 -10:00
Jack Andersen 4cec163804 depth range part of setViewport now 2016-04-04 15:49:08 -10:00
Jack Andersen 23f49fcc19 D3D uniform buffer fixes 2016-04-04 09:33:42 -10:00
Jack Andersen 5b43b31529 Vulkan API sync 2016-04-03 20:36:28 -10:00
Jack Andersen 4a2c32c2a9 Metal extension shader support 2016-04-03 20:13:11 -10:00
Jack Andersen 54ae8c2b1a More graceful OpenGL uniform block binding 2016-04-03 19:00:13 -10:00
Jack Andersen af188afc81 copypasta fix 2016-04-02 20:22:03 -10:00
Jack Andersen 843396095f Metal depth rendering, matched to D3D 2016-04-02 20:18:30 -10:00
Jack Andersen 4c8e36f3e3 D3D-native depth conventions 2016-04-02 19:20:21 -10:00
Jack Andersen 01649d42f6 Windows fixes 2016-04-02 17:30:44 -10:00
Jack Andersen 165b40448f Much more efficient glClear solution 2016-04-01 18:40:31 -10:00
Jack Andersen 40e94f88e0 Mesa depth clear fix 2016-04-01 18:24:46 -10:00
Jack Andersen 59371f5fed GL depth clear fix 2016-04-01 17:55:07 -10:00
Jack Andersen 229b0b28a8 glDrawElements fix 2016-04-01 17:32:39 -10:00
Jack Andersen d047a37e2b OpenGL depth-buffer resize fix 2016-04-01 14:03:36 -10:00
Jack Andersen 679ba36c4c Metal lambda sync 2016-03-30 11:07:12 -10:00
Jack Andersen ecc65a9fd5 D3D sync of new lambda API 2016-03-30 10:42:36 -10:00
Jack Andersen bf6b4e37e8 Major GraphicsDataFactory lambda-API refactor 2016-03-30 09:14:17 -10:00
Jack Andersen 9ff168df2d D3D sync 2016-03-23 22:34:03 -10:00
Jack Andersen 4d33cec75c Add selectable topology to Vulkan 2016-03-23 22:15:15 -10:00
Jack Andersen 6600ff208c Draw primitive now settable via pipeline object 2016-03-23 22:05:19 -10:00
Jack Andersen 85f9a633f0 Update depreciated Vulkan enum 2016-03-14 13:31:43 -10:00
Jack Andersen 0dfab1fdad AudioQueueServices fix 2016-03-08 11:18:38 -10:00
Jack Andersen 1b3209f4bf XAudio2 voices and D3D dynamic textures implemented 2016-03-08 10:28:44 -10:00
Jack Andersen b180b5535b Fix dynamic textures for OpenGL 2016-03-07 12:47:45 -10:00
Jack Andersen 5603164a2d Update LICENSE date and Vulkan tweaks 2016-03-06 17:09:46 -10:00
Jack Andersen 8ac929d140 Humungous refactor 2016-03-04 13:02:18 -10:00
Jack Andersen 94343c645a Geometrically correct viewport rectangle clamp for D3D 2016-02-26 16:02:54 -10:00
Jack Andersen cf9e9d80eb OpenGL and Metal viewport rectangle fixes 2016-02-26 15:38:13 -10:00
Jack Andersen 8296514a61 Blit rectangle fixes 2016-02-26 10:16:21 -10:00
Jack Andersen 483de21103 Metal resolveBindTexture implementation 2016-02-25 22:01:46 -10:00
Jack Andersen b1481f9043 D3D resolveBindTexture fixes 2016-02-25 19:35:12 -10:00
Jack Andersen 0eb11ef78a D3D resolveBindTexture implementation 2016-02-25 14:11:09 -10:00
Jack Andersen 48eab88cfc Update signature of VulkanCommandQueue::resolveBindTexture 2016-02-24 19:14:59 -10:00
Jack Andersen 7bdabb5ed3 Metal stubs for resolveBindTexture 2016-02-24 19:06:13 -10:00
Jack Andersen fec5218666 Preparation for ResolveBindTexture test 2016-02-24 16:53:23 -10:00
Jack Andersen b11b727c4d OS X fixes 2016-02-24 11:07:48 -10:00
Jack Andersen d657f3c8f8 Windows fixes 2016-02-24 10:52:31 -10:00
Jack Andersen 6de30424e3 GLSL bindings and Vulkan bug fixes 2016-02-23 17:11:58 -10:00
Jack Andersen 74e2f47bcf Tons of Vulkan bug fixes 2016-02-22 15:13:03 -10:00
Jack Andersen ae487b70f3 Xlib integration of Vulkan 2016-02-21 16:47:45 -10:00
Jack Andersen f9c681bef9 Update glslang 2016-02-20 20:36:13 -10:00
Jack Andersen 1037b37f9a Major Vulkan commit 2016-02-20 20:27:54 -10:00
Jack Andersen 8bfb883d59 D3D12 DXT1 shader-resource-view 2016-02-18 10:51:44 -10:00
Jack Andersen d75a727a5d D3D static texture no-context loading 2016-02-16 17:35:10 -10:00
Jack Andersen 77e9492b43 better OpenGL mipmap configuration 2016-02-16 09:41:16 -10:00
Jack Andersen e9bd443e49 Merge branch 'master' of https://github.com/AxioDL/libBoo 2016-02-15 19:47:40 -10:00
Jack Andersen 1ab63cfb18 No-context texture constructor (OpenGL only for now) 2016-02-15 19:47:09 -10:00
Phillip Stephens c82815c476 Reimplement context selection for linux 2016-02-15 09:53:54 -08:00
Jack Andersen 8ce4e6ffd3 Merged MS' newly-licensed d3dx12.h 2016-02-02 13:40:36 -10:00
Jack Andersen 2f254dc955 D3D11/12 mipmapping fixes 2016-01-19 10:30:51 -10:00
Jack Andersen 5a2fb0768b Preliminary Vulkan shader pipeline factory 2016-01-14 12:46:05 -10:00
Jack Andersen 9b416c6549 NSPtr is unnecessary with ARC enabled 2016-01-11 12:26:40 -10:00
Jack Andersen 5485e7d2b1 OpenGL storage reuse with glBufferSubData 2016-01-07 14:04:37 -10:00
Jack Andersen 6ee5e9011b D3D11 Buffer update fix 2016-01-02 11:16:50 -10:00
Jack Andersen ce9d877cfa Additional cocoa events; Metal present fix 2015-12-31 10:20:38 -10:00
Jack Andersen 53ad4df63d D3D Scissor fix and Scroll events 2015-12-30 20:34:26 -10:00
Jack Andersen 9f9ff269fe More TextInput implementation 2015-12-26 18:20:07 -10:00
Jack Andersen fd01dbb17a Brought windows in sync 2015-12-20 15:06:08 -10:00
Jack Andersen 01ab873e06 OS X updates; post-frame handler event 2015-12-20 14:40:52 -10:00
Jack Andersen 8a33d74c13 OS X thread-local fixes 2015-12-18 11:33:53 -10:00
Zero-One101 68a1e9150e Fixed debug statement 2015-12-18 05:39:00 +00:00
Jack Andersen 7153168a2c Added debug assert to D3D 2015-12-17 18:55:06 -10:00
Jack Andersen aa787eb427 IGraphicsDataToken rename 2015-12-17 17:25:23 -10:00
Jack Andersen 11cc456b4e Fix release derp 2015-12-17 12:10:14 -10:00
Jack Andersen bb35ded399 handy debug assert 2015-12-17 11:29:47 -10:00
Jack Andersen 916002f9da Thread safety updates for D3D 2015-12-14 09:19:29 -10:00
Jack Andersen 7224d5fdf7 Thread safety additions for OpenGL 2015-12-13 18:54:57 -10:00
Jack Andersen 2983262173 Metal window resize fixes 2015-12-09 12:23:22 -10:00
Jack Andersen 9baff7a2bc Protecting D3D11 client dynamic buffers 2015-12-09 11:02:04 -10:00
Jack Andersen 9485f5d115 Much more stable D3D11 backend 2015-12-08 19:52:51 -10:00
Jack Andersen 41ebfe872a Countdown-deferred deletion added 2015-12-08 19:23:15 -10:00
Jack Andersen e43b3671b3 D3D12 render-target delete fix 2015-12-08 15:04:06 -10:00
Jack Andersen 6062302816 D3D Crash fix for large array textures 2015-12-08 13:57:16 -10:00
Jack Andersen 3e4ed5ad1f OpenGL deferred delete fix 2015-12-07 15:49:17 -10:00
Jack Andersen 3daa5df720 Brought Metal renderer in sync 2015-12-04 15:12:52 -10:00
Jack Andersen db40c2bff0 Brought D3D11/12 in sync 2015-12-04 15:03:44 -10:00
Jack Andersen d145e15ecb IGraphicsDataToken and IGraphicsCommandQueue::stopRenderer() 2015-12-04 14:41:30 -10:00
Jack Andersen fc4234708f Brought metal in sync 2015-12-02 12:25:30 -10:00
Jack Andersen d0bdb40f0e Brought D3D in sync with GL update 2015-12-02 12:04:24 -10:00
Jack Andersen 13cf33d75f Internal dynamic buffer updating (OpenGL only) 2015-12-02 11:09:49 -10:00
Jack Andersen c34b93f00f Windows bug fixes 2015-11-30 14:33:14 -10:00
Jack Andersen 66c2cbdf14 Proper dynamic buffer sync 2015-11-29 16:37:46 -10:00
Jack Andersen c0b93f39d8 Instanced rendering support in Metal 2015-11-27 18:07:53 -10:00
Jack Andersen 6806be2067 Brought D3D11/12 in sync for instanced rendering 2015-11-27 12:14:05 -10:00
Jack Andersen c5de075c0d Array texture fix 2015-11-26 13:03:01 -10:00
Jack Andersen 6c83991e2a More vertex semantic adjustments 2015-11-25 14:22:05 -10:00
Jack Andersen 3bcfa99b5a Updates to support instanced rendering (OpenGL only) 2015-11-24 16:14:30 -10:00
Jack Andersen 8682485dea Added array texture factory method (OGL only right now) 2015-11-22 22:49:53 -10:00
Jack Andersen 84b78f2962 windows enum refactor fixes 2015-11-20 16:58:56 -10:00
Jack Andersen d040e20096 OS X enum refactor fixes 2015-11-20 16:16:15 -10:00
Jack Andersen c9edf8dd85 Major scoped-enum refactor 2015-11-20 15:12:22 -10:00
Jack Andersen 62fae60042 HECL metal shader support 2015-11-18 13:55:25 -10:00
Jack Andersen 998255efd5 Working HECL shader generation on D3D11/12 2015-11-17 20:14:49 -10:00
Jack Andersen 4d133edd2c Window resizing stability fixes 2015-11-16 20:41:32 -10:00
Jack Andersen 49da287791 Fixed 60Hz timing on GLX 2015-11-16 18:20:11 -10:00
Jack Andersen 0be417f0b0 OS X fixes 2015-11-16 12:03:46 -10:00
Jack Andersen 181a038901 Bug fixes for HECL 2015-11-16 10:43:27 -10:00
Jack Andersen d75c675f7a Updates for HECL support 2015-11-15 18:29:31 -10:00
Phillip fe061b8d0a Squash MSVC warnings 2015-11-13 22:12:39 -08:00
Jack Andersen a13758dca5 Metal API bug fixes 2015-11-08 20:45:14 -10:00
Jack Andersen 2be32d6ca4 Initial integration of Metal API 2015-11-08 16:24:45 -10:00
Jack Andersen 606e3676b1 OS X event fixes and prep for Metal API 2015-11-07 14:36:38 -10:00
Jack Andersen 8fa76853c5 Lowered D3D12 API use to heap tier1 2015-11-07 10:03:21 -10:00
Jack Andersen 8951008cca Added Windows OpenGL support. D3D11 stability fixes 2015-11-06 15:43:12 -10:00
Jack Andersen 0923254b39 Lots of D3D11 implemented 2015-11-05 17:20:58 -10:00
Jack Andersen e5ef02588f D3D12 bug fixes 2015-11-04 18:57:48 -10:00
Jack Andersen 5d62f6593b Initial D3D window appearing 2015-11-04 14:00:29 -10:00
Jack Andersen bc17d5aba8 Fixed rendering for decoupled target texture 2015-11-03 15:58:36 -10:00
Jack Andersen 30898c6549 OpenGL API sync 2015-11-03 15:02:05 -10:00
Jack Andersen 7367c9a952 Merge branch 'master' of https://github.com/AxioDL/libBoo 2015-11-03 14:27:59 -10:00
Jack Andersen bc84471d4d More D3D12 work 2015-11-03 14:27:32 -10:00
Phillip Stephens 3af64ddbb2 Re-enable backface culling flag 2015-11-03 14:15:37 -08:00
Phillip Stephens 5bb1198dd1 Fix intermittent upload failures on NVIDIA GPUs 2015-11-03 14:13:15 -08:00
Jack Andersen 50bca6f58e Linux sync from Windows changes 2015-11-02 18:27:56 -10:00
Jack Andersen facacd4e95 More D3D12 work 2015-11-02 18:19:41 -10:00
Phillip Stephens 4f650ce5f5 Rename classes to match their functionality/API better 2015-11-02 02:09:25 -08:00
Phillip Stephens d5cd0bfb50 Various fixes 2015-11-02 01:31:06 -08:00
Jack Andersen e54c8a7c6b Initial round of D3D12 implementation 2015-11-01 19:41:24 -10:00
Jack Andersen f796d66407 All kinds of fixes and updates 2015-10-31 14:06:56 -10:00
Jack Andersen bb2ca27ab7 Ensure OGL 3.3 context is created 2015-10-31 09:21:23 -10:00
Jack Andersen 1579fc3626 potential deadlock addressed 2015-10-30 20:33:36 -10:00
Jack Andersen d013f1e25c Integrated GLEW; began migration to Xlib 2015-10-30 18:28:21 -10:00
Jack Andersen b73ecde4aa Added LogVisor 2015-10-29 20:26:02 -10:00
Jack Andersen 2814da014f Further GLES3 implementation 2015-10-29 14:00:56 -10:00
Jack Andersen 5435f01d20 lots of initial GLES3 renderer implementation 2015-10-28 18:44:38 -10:00