Commit Graph

2511 Commits

Author SHA1 Message Date
Ben Vanik b5a0c4715b Porting GL4 geometry shaders. Likely not working. 2016-02-20 16:35:21 -08:00
Ben Vanik 769c58a9b2 Adding `xb genspirv` to do glsl->.h. 2016-02-20 16:24:42 -08:00
Ben Vanik 5759f82276 Adding pipeline caching. 2016-02-20 15:00:11 -08:00
Ben Vanik 731ff52773 Implementing a lot of the pipeline state setting. 2016-02-20 12:59:18 -08:00
Ben Vanik 97174dbe4d Skeleton leaky hacky hardcoded pipeline setup. 2016-02-19 23:23:58 -08:00
Ben Vanik 990b600f53 Buffer uploads (without reclaiming, yet). 2016-02-19 21:08:50 -08:00
Ben Vanik de1e4661ff Not crashing (but also likely not working) EDRAM emulation. 2016-02-19 20:36:10 -08:00
Ben Vanik 8820c73532 A night's worth of work: documented EDRAM. Seems mostly right. 2016-02-19 10:38:11 -08:00
Ben Vanik 1dcc84a472 Starting render passes. 2016-02-18 18:18:31 -08:00
Ben Vanik 52a6f795f7 Shader modules and plumbing. 2016-02-18 18:18:31 -08:00
Dr. Chat f9ca0b86a8 Query to see if the physical device supports a swapchain surface to silence a validation layer error. 2016-02-18 20:10:14 -06:00
Ben Vanik 3bf1c91eaa Those are really pointers - need those bits. 2016-02-18 16:52:52 -08:00
Ben Vanik 4c4a641096 WIP rough sketch of vulkan backend structure. 2016-02-18 16:43:41 -08:00
Ben Vanik 35e08d9428 Switching from fork to main glslang spirv builder. 2016-02-18 16:43:41 -08:00
Ben Vanik 00594da417 Adding mutliple queue/shared queue support. 2016-02-18 16:43:41 -08:00
Ben Vanik ecd257b34c Fix headers include guards. 2016-02-18 16:43:41 -08:00
Ben Vanik 618ca80011 Count packed bytes used by a constant map. 2016-02-18 16:43:41 -08:00
Ben Vanik 5ab0af9e6d Implementing shader constant register map construction. 2016-02-18 16:43:41 -08:00
Ben Vanik 05107d2d3e Skeleton xenia::gpu::vulkan implementation, enough to start trace viewer. 2016-02-18 16:43:41 -08:00
Ben Vanik ca5902c111 Recreate swap chain on window resize. 2016-02-18 16:43:41 -08:00
Ben Vanik a97fa36512 Fixing swap chain scissoring; surface is still not resized right. 2016-02-18 16:43:41 -08:00
Ben Vanik 9f52f2e819 Initial vulkan context and immediate drawer.
Extremely rough, just checking in so DrChat can snoop.
2016-02-18 16:43:41 -08:00
Dr. Chat 27bace0e5c Actually disable writewatch kill in ConvertTexture 2016-02-17 18:04:10 -06:00
Dr. Chat b14c4ad681 Disable write watch kill in ConvertTexture 2016-02-17 17:57:56 -06:00
Dr. Chat 8bf1bf57fd Fix GL4 alpha test, use blend disable flag
If color clear is enabled, grab the color target no matter what.
Update texture readback code on copy (but not enabled)
Track PA_SC_VIZ_QUERY in UpdateRasterizerState
2016-02-17 17:56:28 -06:00
Ben Vanik f5eef128f8 Merge pull request #539 from DrChat/vizquery_wip
Viz Query WIP Notes
2016-02-16 17:21:39 -08:00
Ben Vanik 864b1b5fac Merge pull request #538 from DrChat/trace_viewer_misc
Trace Viewer Zoomed View / Fix Alpha Test
2016-02-16 17:19:26 -08:00
Dr. Chat a2dd1c48ae Add some WIP viz query notes to the command processor.
Also implement PM4_SET_BIN_MASK/SELECT.
2016-02-16 18:36:43 -06:00
Dr. Chat 253e164753 Move EnableDepthTest functionality into a bool alpha_blend var on ImmediateDraw. 2016-02-16 18:24:37 -06:00
Ben Vanik c667dfc596 Don't put kernel stacks in GPU memory. 2016-02-16 15:05:11 -08:00
Dr. Chat e77af94c7c Ignore color target / depth target / texture alpha in the trace viewer. 2016-02-16 16:45:49 -06:00
Dr. Chat a8dfd6a21a Add a flag to ImTextureID that disables alpha test 2016-02-16 16:43:12 -06:00
Dr. Chat 65d1ea0250 Add a zoomed image view for color targets and depth targets. 2016-02-16 16:41:20 -06:00
Ben Vanik c5de61860d Merge pull request #531 from DrChat/gl4_shader_cache
GL4 Shader Cache
2016-02-16 07:20:33 -08:00
Ben Vanik f16a288f30 Merge pull request #532 from DrChat/profiler_flip_decouple
Decouple MicroProfilerFlip from Profiler::Present
2016-02-16 07:19:20 -08:00
Ben Vanik cc00b2d7a5 Merge pull request #533 from sephiroth99/noamd
More shader changes
2016-02-16 07:18:55 -08:00
sephiroth99 a442bb50b4 Prevent undefined behaviour with thread_safe_gl enabled.
CreateOffscreenContext already calls ClearCurrent. When it is done twice,
the global GL mutex is unlocked a second time, and undefined behavour
happens. In this particular case, a deadlock occured; unlocking the already
unlocked mutex locked it.
2016-02-11 23:50:11 -05:00
sephiroth99 205f64eb8b Fix compilation with VS2015 Update 2 CTP 2016-02-11 23:47:11 -05:00
sephiroth99 00674736fe Fix minor syntax error in shaders.
Discovered with glslangValidator.
2016-02-08 20:42:09 -05:00
sephiroth99 1520869a82 Revert "AMD people: have at it. I ain't gonna guarantee it'll work, though."
This reverts commit 8c0614b202.

Recent changes to generated shaders require GLSL 4.50.
2016-02-08 20:40:52 -05:00
Dr. Chat 4335e41c14 Decouple MicroProfileFlip from Profiler::Present (and start a new frame in XE_SWAP) 2016-02-07 19:25:30 -06:00
Dr. Chat a64e53fba6 Fix include order. 2016-02-05 16:31:01 -06:00
Dr. Chat 6cb7f0c23d GL4CommandProcessor: Use the new GL4ShaderCache 2016-02-05 16:14:35 -06:00
Dr. Chat 406ec8c6da GL4ShaderCache util class - caching to filesystem disabled by default 2016-02-05 16:11:00 -06:00
Dr. Chat e9dd0ce9de GL4Shader load from binary support 2016-02-05 16:02:14 -06:00
Dr. Chat 1066362ada ShaderTranslator::GatherAllBindingInformation 2016-02-05 16:00:50 -06:00
Dr. Chat ccb6a9146c Expose microcode data hash in Shader
Return paths to files that were dumped from Dump
2016-02-05 15:59:07 -06:00
Dr. Chat f75a4cab0e Apply a few optimizations to generated GLSL shaders. 2016-01-30 19:39:47 -06:00
Ben Vanik 9a09a61874 Merge pull request #526 from DrChat/command_processor_rb
Command Processor RingBuffer Replacement
2016-01-30 11:07:27 -08:00
Dr. Chat bf2c3d34da Fix XMAInitializeContext is_stereo flag. 2016-01-30 13:04:52 -06:00
Dr. Chat 6ce28ffd8c Command Processor: Replace RingbufferReader with RingBuffer
Report any packet processing errors
PM4_MEM_WRITE
2016-01-24 22:54:26 -06:00
Dr. Chat 6a67632af1 Update RingBuffer - Add immediate read/write and some error checking asserts. 2016-01-24 22:39:05 -06:00
Dr. Chat 9b1e6d6cb3 Resolve a module name to its full path before comparing names. 2016-01-24 09:50:48 -06:00
Dr. Chat 8a89a93eab Fix improperly reading 2_10_10_10 bitfields (or so I hope)
Check at runtime if a vertex fetch index doesn't match gl_VertexID
Fix trying to instantiate a vec1
2016-01-22 18:49:17 -06:00
Dr. Chat b2d8837e52 Fix depth clear when not sourcing from a depth target. 2016-01-22 18:47:27 -06:00
Ben Vanik 6c6f7c6eca Merge pull request #522 from sephiroth99/lf3
Linux compilation/link and compatibility fixes
2016-01-20 19:41:40 -08:00
sephiroth99 a74c88851b Rework RtlTime with portable time conversion functions 2016-01-20 12:26:49 -05:00
sephiroth99 bf910c2d9a Add missing definitions for XAPC constants
Fixes linking errors for these symbols.
2016-01-20 11:26:35 -05:00
sephiroth99 f17b80c61e Use stdlib 'hardware_concurrency' to get logical processor count
This has the benifit of being multiplatform.
2016-01-20 11:04:28 -05:00
sephiroth99 5d9a4b6830 Handle all other cases in switch statements 2016-01-20 11:00:37 -05:00
sephiroth99 1c14964739 Add missing override on virtual function 2016-01-20 10:57:50 -05:00
sephiroth99 4c0f9e6342 Add missing includes 2016-01-20 10:36:01 -05:00
sephiroth99 d78317847d Fix link error when profiling is disabled
These four functions are needed by microprofile even when profiling
is disabled.
2016-01-20 09:35:27 -05:00
Dr. Chat 8710b105bf Draw smaller floating point formats in the trace viewer. 2016-01-19 21:18:48 -06:00
Dr. Chat 9ed0934123 Swap to modern OpenGL for TFB usage. 2016-01-19 18:31:36 -06:00
Dr. Chat 47f5896089 Add TFB support to the trace viewer 2016-01-18 22:22:15 -06:00
Dr. Chat a34e82c77f Disable GL cull on rectangle lists 2016-01-18 21:00:58 -06:00
Dr. Chat 3859b0a091 Add an option for the draw batcher to collect vertex shader output. Disabled by default. 2016-01-18 20:57:36 -06:00
Dr. Chat 55a8964428 Fix shaders reading 10_11_11 bitfields backwards. 2016-01-18 15:46:41 -06:00
Ben Vanik 2e5c64fb13 Prevent some divide by zeros in shaders. Thanks @vlj!
Fixes #518.
2016-01-18 11:51:18 -08:00
Ben Vanik 6777ce6668 Reconcile debugger and save state stuff into a single implementation.
Fixes #497 and fixes #496.
Still rough edges, but at least less duplication.
2016-01-18 11:48:21 -08:00
Dr. Chat 34e03294ef Fix vfetch_mini instructions using stale data when following a vfetch_full that doesn't fetch anything 2016-01-16 22:39:00 -06:00
Dr. Chat e8719dd949 Fix an overflow crash in DiscImageDevice::Verify 2016-01-14 15:18:41 -06:00
Ben Vanik 9473f20c7f Fixing travis lint diff. 2016-01-13 22:55:28 -08:00
Ben Vanik 2e826f9321 Supporting constants in Haswell codepaths for mul_add/sub. 2016-01-13 22:29:39 -08:00
Dr. Chat 0771eea0b3 Change comments to comply with local regulations. 2016-01-13 19:41:15 -06:00
Dr. Chat bd6bf16bd1 New flag: disable_global_lock - Disables global lock usage in guest code. 2016-01-13 19:40:00 -06:00
Dr. Chat a5b37dce1d Shaders: Emit an unimplemented warning for indexed vertex fetch instructions 2016-01-13 01:50:20 -06:00
Dr. Chat 14c5e48120 Enable speculative PACK_TYPE_FLOAT16_3 2016-01-13 01:48:18 -06:00
Dr. Chat 36372d1eae Enforce xex memory protections 2016-01-13 01:47:06 -06:00
Dr. Chat f0802d75fa Use atomic compare exchange in stdcx/stwcx (still under the global lock) 2016-01-13 01:45:31 -06:00
Dr. Chat 51dde62f09 x64 backend vector optimizations 2016-01-13 01:43:23 -06:00
Dr. Chat 7b6f1388d6 OPCODE_ATOMIC_COMPARE_EXCHANGE 2016-01-13 01:41:58 -06:00
Dr. Chat 3ccb2a978d Propagate vector constants. 2016-01-13 01:40:44 -06:00
Dr. Chat 4b7a403337 xe::be<uint64_t> visualizers 2016-01-13 01:30:46 -06:00
Dr. Chat 6d2f083b09 Up the maximum function count to 50,000 2016-01-13 01:30:15 -06:00
Dr. Chat 0cf6e166a1 vec128 bitwise operators 2016-01-13 01:29:47 -06:00
Ben Vanik 9c93fa5187 Cleaning up xdbf stuff.
- moving next to xex utils
- fixing error cases around icon setting (and allowing reset)
- making C++11
- abstracting a bit so future additions will be easier
- fixing non-xex uses
2016-01-10 11:04:55 -08:00
Ben Vanik 86b706d87c Merge pull request #509 from x1nixmzeng/xex-resources
Rebrand the Xenia window with module metadata
2016-01-10 08:55:47 -08:00
x1nixmzeng 3eb602c93a Assert library name index is in range of the string table
As suggested by @DrChat
2016-01-09 17:55:57 +00:00
x1nixmzeng 6530b9dc49 Added callback when new module is launched
This avoids having to guess the display window title format
Also manually fixed the linting errors picked out by travis which do not
get picked up using xb format locally
2016-01-09 17:36:46 +00:00
x1nixmzeng 06f259c87d Mask the name index instead
The maximum number of import libraries (32) is already asserted
2016-01-09 02:43:29 +00:00
x1nixmzeng 7e4fdf7669 Fixed rare crash when accessing library import by name
The library name index may only be 8-bits.

This bug was not present in the previous implementation due to a bitmask
(0xFF) - see
ea99ba8e3b/src/xenia/kernel/util/xex2.cc (L272)
2016-01-09 01:19:05 +00:00
x1nixmzeng 5fa9499a12 Community feedback
Updated naming convention
Exposed the game name to Emulator for other uses
Fixed bug with XDBF parsing
2016-01-08 22:55:37 +00:00
x1nixmzeng e4cef38d95 Formatting of changes
As per the style guide
2016-01-07 20:51:28 +00:00
x1nixmzeng effe241a11 Removed stb_image dependency
Windows actually supports PNG resources
2016-01-07 20:38:27 +00:00
x1nixmzeng 92c8409b0a Set the window icon from the module resource pool
Makes use of the stb_image library
Conversion to HICON seems to have broken somewhere
2016-01-07 01:32:56 +00:00
x1nixmzeng 321e2d8873 Set the window title from the module resource pool 2016-01-07 00:58:05 +00:00
x1nixmzeng 729a1af0d5 Added XDBF utility library
Utility library to support the XDBF file format for XEX module resources
2016-01-07 00:51:27 +00:00
Ben Vanik 16c97189dd Splitting up debugger.h. 2016-01-01 15:52:43 -08:00