Commit Graph

3122 Commits

Author SHA1 Message Date
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
Ben Vanik 07ba1be7f5 Switching debugger to not retain XThreads. 2016-01-01 15:35:48 -08:00
Ben Vanik 1b487b67c9 Why travis doesn't have aligned_alloc but my other two unixes do, ?. 2016-01-01 13:08:15 -08:00
Ben Vanik 09aa3179fb Adding cstdlib to memory.h. 2016-01-01 20:59:52 +00:00
Ben Vanik c93b93fe55 Standardizing wchar->char in main(). 2016-01-01 12:46:26 -08:00
Ben Vanik c8b544ffd4 Fixing casts. This is why I need tests. 2016-01-01 12:45:06 -08:00
Ben Vanik 8770e6e6cf Adding yaml-cpp for #428, use rando fork until jbeder/yaml-cpp#342 lands. 2016-01-01 12:13:36 -08:00
Ben Vanik 207b835386 I have a dream that one day compilers will agree. 2016-01-01 19:19:18 +00:00
Ben Vanik 2f012fb56d Though I disagree with these lint fixes, I want travis to shut up. 2016-01-01 18:38:20 +00:00
Ben Vanik b02ca62388 Fixing most remaining C++ warnings in clang. 2016-01-01 18:37:33 +00:00
Ben Vanik e029c9abdc Cleaning up clang warnings in gpu/. 2016-01-01 16:04:47 +00:00
Ben Vanik 95d3a9c345 Minor clang warning fixes. 2016-01-01 06:01:22 +00:00
Ben Vanik c4ca7ad2ae Fixing builds when profiling is disabled. 2016-01-01 04:51:02 +00:00
Ben Vanik a95be25e2f Merge branch 'linuxfix' of https://github.com/sephiroth99/xenia into sephiroth99-linuxfix 2015-12-31 14:39:23 -08:00
Marc-Antoine Levasseur f1829a5784 Fix the StfsContainerEntry not being initialized in StfsContainerFile 2015-12-31 13:02:24 -05:00
Ben Vanik f26bea88d9 Replacing zlib with snappy in traces, adding trace header, docs. 2015-12-30 22:58:22 -08:00
Ben Vanik 952d35911c Folding build_tools back into the main repo for simplicity. 2015-12-30 16:53:14 -08:00
Ben Vanik 214532a3e8 Fiddling with FPSCR and such. Still not implemented, but wiring done. 2015-12-30 16:53:14 -08:00
Ben Vanik 0482ffad5a Allow XMA decoder to be suspended. 2015-12-30 16:53:13 -08:00
Ben Vanik c296d581cf Readback CA in XER. 2015-12-30 16:53:12 -08:00
sephiroth99 f5d4941716 shader_translator: Remove always true expression
vector_dest() returns an unsigned value, it will always be >= 0.
2015-12-30 18:43:24 -05:00
sephiroth99 f3fc50c8db shader: Fix print format for hash 2015-12-30 18:43:24 -05:00
Dr. Chat 2a590f31fe XFile: Track asynchronous/synchronous flag (and return appropriately in nt Read/Write file) 2015-12-30 17:36:05 -06:00
sephiroth99 962d8215da shader_translator: Handle all enum values in switch-cases 2015-12-30 17:42:18 -05:00
sephiroth99 ee8e6e8822 debug_window: Use function to store from '__m128' variable. 2015-12-30 17:42:18 -05:00
sephiroth99 b0bce0d9ab debug_window: Ignore other breakpoint types
In the breakpoints pane, add a default case for breakpoint types that
ignores the other possible types.
2015-12-30 17:42:18 -05:00
sephiroth99 6b31ddfb42 debug_window: Use correct format specifier for double value
Specifier 'LF' is 'long double'.
2015-12-30 17:42:18 -05:00
sephiroth99 fe30941c9b debug_window: Use a string literal as a format string
Fixes clang "format-security" error.
2015-12-30 17:42:18 -05:00
sephiroth99 235f58d757 Add missing include for std::find 2015-12-30 17:42:18 -05:00
sephiroth99 058ae01568 Add default case which ignores other mouse buttons 2015-12-30 17:42:18 -05:00
sephiroth99 9451c0b1cf Fix different types in std::min arguments 2015-12-30 17:42:18 -05:00
sephiroth99 3f49aa3cef Add default case for unhandled target_type values 2015-12-30 17:42:18 -05:00
sephiroth99 da71bc26a2 Use correct value in unhandled case assert 2015-12-30 17:42:18 -05:00
sephiroth99 16ade60d37 Pass a C string for logging argument 2015-12-30 17:42:18 -05:00
sephiroth99 d982b54bda byte_stream: Remove template specialization in class scope 2015-12-30 17:42:18 -05:00
sephiroth99 a743c12e72 byte_stream: add missing include for memcpy 2015-12-30 17:42:18 -05:00
sephiroth99 fa953fe758 bit_map: Add missing include for size_t definition 2015-12-30 17:42:18 -05:00
sephiroth99 fc04ca040f Fix building with profiling disabled 2015-12-30 17:42:18 -05:00
Ben Vanik cbc74c92f4 Fixing CR update for divwu/divdu/mulhwu. 2015-12-30 10:04:57 -08:00
Ben Vanik 69c7bac8db Fixing branch address calculation. 2015-12-30 09:47:24 -08:00
Ben Vanik 3c332ef1f5 Adding/removing saturate checks where required. 2015-12-30 09:31:03 -08:00
Ben Vanik 76ed07cfff Adding back FILE_FLAG_BACKUP_SEMANTICS. 2015-12-30 09:19:54 -08:00
Ben Vanik 74d71f7a4a Fixing the rlw* instructions. 2015-12-30 09:02:29 -08:00
Ben Vanik b09e32ec15 Adding tests for broken rlwnm and rliwnm. Not yet fixed. 2015-12-29 20:58:38 -08:00
Ben Vanik 321e2663ef Fixing mullw. 2015-12-29 20:42:20 -08:00
Ben Vanik 431088d35e Faster clearing of heaps to speed up tests. 2015-12-29 20:26:01 -08:00
Ben Vanik d7eff7c9e3 Marking some memory instructions as kM. 2015-12-29 17:53:49 -08:00
Ben Vanik 077f73449d More gracefully handle killed threads. Still needs some UI love. 2015-12-29 15:19:31 -08:00
Ben Vanik cc37fb1358 Updating to the latest capstone. Fixes #440. 2015-12-29 15:19:08 -08:00
Ben Vanik 3ca0bff246 Avoid duplicate object handle assignment on creation. 2015-12-29 14:03:23 -08:00
Ben Vanik 9c694f07b3 Better trap message. 2015-12-29 13:40:53 -08:00
Ben Vanik 948aa2400d Formatting all code. Too gnarly to rebase properly. 2015-12-29 13:13:34 -08:00
Dr. Chat 4e7dfa477b Assign XModule path on load rather than in the constructor 2015-12-29 13:10:03 -08:00
Dr. Chat c242a01043 Mark XThreads as running before calling Execute 2015-12-29 13:10:02 -08:00
Dr. Chat 6108ff1608 Use a 64-bit bitmap rather than a 32-bit bitmap. 2015-12-29 13:10:02 -08:00
Dr. Chat 764dcba75a Update TLS comments 2015-12-29 13:10:01 -08:00
Dr. Chat 5cb591b993 Compensate for static TLS when accessing dynamic TLS. 2015-12-29 13:10:01 -08:00
Dr. Chat bca5fb5382 XThread acquire mutants on restore 2015-12-29 13:10:00 -08:00
Dr. Chat 5c94062110 XFile setup async_event_ in the restore constructor 2015-12-29 13:10:00 -08:00
Dr. Chat fefc2036b3 Fix XSemaphores saving/restoring a bad counter 2015-12-29 13:09:59 -08:00
Dr. Chat d4da8cab4e BitMap: Change the size param to the number of entries (bits) 2015-12-29 13:09:59 -08:00
Dr. Chat eee0bb070c Store thread TLS in guest memory rather than using host APIs 2015-12-29 13:09:58 -08:00
Dr. Chat c5ac4185ac Threadsafe bitmap class 2015-12-29 13:09:58 -08:00
Dr. Chat bb5fd73b9e Register user-modules with the kernel in UserModule::Restore 2015-12-29 13:09:57 -08:00
Dr. Chat 2855036f72 Remove modules from the object table if they fail to load. 2015-12-29 13:09:57 -08:00
Dr. Chat 3e6c70defa Fixup UserModule::LoadFromFile to use new vfs API 2015-12-29 13:09:56 -08:00
Dr. Chat f4154810b6 XamModule::LoaderData::launch_data_present 2015-12-29 13:09:56 -08:00
Dr. Chat 08663fd745 Non-const ByteStream::data() 2015-12-29 13:09:55 -08:00
Dr. Chat 68f9949829 Make XObject::GetWaitHandle a protected function 2015-12-29 13:09:55 -08:00
Dr. Chat e619e4590c debugger: Don't feed the stack walker an XThread's wait handle 2015-12-29 13:09:54 -08:00
Dr. Chat 8f92c60a0b ObCreateSymbolicLink/ObDeleteSymbolicLink 2015-12-29 13:09:54 -08:00
Dr. Chat 9cf324f689 Fix VFS files not having correct paths recorded. 2015-12-29 13:09:53 -08:00
Dr. Chat ab9fac9a98 XMutant Save/Restore 2015-12-29 13:09:53 -08:00
Dr. Chat 5aff9d12ee Call XObject::WaitCallback on successful waits 2015-12-29 13:09:52 -08:00
Dr. Chat d0f547020a XamLoaderLaunchData: Fix incorrect return values when launch data is not present. 2015-12-29 13:09:52 -08:00
Dr. Chat b9159ddee8 X64CodeCache: Add a couple of overflow debug asserts 2015-12-29 13:09:52 -08:00
Dr. Chat f5237d486a KernelState::TerminateTitle - Release the global lock in smaller regions / No need for an argument specifying if called from guest 2015-12-29 13:09:51 -08:00
Dr. Chat 366f91e191 XFile Save/Restore 2015-12-29 13:09:51 -08:00
Ben Vanik 383a173a18 REBASE: fixing xthread instruction decoding. 2015-12-29 13:09:50 -08:00
Dr. Chat bcacb9b127 Remove vfs dependency on kernel, implement I/O completion ports 2015-12-29 13:09:50 -08:00
Dr. Chat a5c22ec214 XThread: Only need to retain a pointer to our object - not a handle. 2015-12-29 13:09:49 -08:00
Dr. Chat 621d3f8abb XThread free stack on destruction 2015-12-29 13:09:49 -08:00
Dr. Chat 07d31862f1 XThread: Special case save/restore for threads no longer running. 2015-12-29 13:09:48 -08:00
Dr. Chat b58e9afbf1 Fix XThread::StepIntoBranch not properly stepping into blr/bctr 2015-12-29 13:09:48 -08:00
Dr. Chat 44c9e8fe25 Save/Restore the guest clock in XThreads 2015-12-29 13:09:47 -08:00
Dr. Chat adec5602c2 XModule log on save/restore 2015-12-29 13:09:47 -08:00
Dr. Chat 6f4626118e Fix infinite loop in StepToSafePoint after stepping to an address once 2015-12-29 13:09:46 -08:00
Dr. Chat 4cbe219476 Don't update the dispatch header in KetSetEvent/KeResetEvent (threading issues) 2015-12-29 13:09:46 -08:00
Dr. Chat 5f79d8f97e Fix RingBuffer::EndRead not detecting a split read (where second length == 0) 2015-12-29 13:09:45 -08:00
Dr. Chat d0284e943d XSemaphore Save/Restore 2015-12-29 13:09:45 -08:00
Dr. Chat afb514528e Save/Restore XThreads before any other kernel objects 2015-12-29 13:09:44 -08:00
Dr. Chat b97a39150b Rewrite Rtl critical section implementation (and implement full waiters) 2015-12-29 13:09:44 -08:00
Dr. Chat 606aa9af6f XThread: Update the PC when we step out of an export! 2015-12-29 13:09:43 -08:00
Dr. Chat ee0a41aa2c Fix AudioSystem Restore and cleanup some code 2015-12-29 13:09:43 -08:00
Dr. Chat b94ab4acbc AudioSystem Save/Restore 2015-12-29 13:09:42 -08:00
Dr. Chat d2d97fe58f XThread - Fix unconditional conditional branch check 2015-12-29 13:09:42 -08:00
Dr. Chat 4eff2d8420 AudioSystem - switch to a free flag for free clients rather than a queue. 2015-12-29 13:09:41 -08:00
Dr. Chat 6997970d52 GraphicsSystem Save/Restore 2015-12-29 13:09:41 -08:00
Dr. Chat 9ed81b6876 Fix not assigning write access to WriteCombine pages on restore. 2015-12-29 13:09:40 -08:00
Dr. Chat 1442f50058 X64Backend: Take a reference of the pair rather than a copy (and formatting) 2015-12-29 13:09:40 -08:00
Dr. Chat 49ed0915d4 Add (temporary) shortcuts to save(F7)/restore(F8) to a file called "test.sav" 2015-12-29 13:09:39 -08:00
Dr. Chat 24f8295daa Make KernelState::TerminateTitle try to terminate XThreads safely. 2015-12-29 13:09:39 -08:00
Dr. Chat 3007a98d2d Install false-branch breakpoint only if the opcode is conditional. 2015-12-29 13:09:38 -08:00
Dr. Chat f9de61ceed XThread::StepToSafePoint - Handle cases where the thread hasn't started yet. 2015-12-29 13:09:37 -08:00
Dr. Chat 0f82e0d090 Make the processor automatically generate any ungenerated functions when installing a breakpoint. 2015-12-29 13:09:37 -08:00
Dr. Chat 5ef21d3714 memory: Write no access pages to the savefile. 2015-12-29 13:09:36 -08:00
Dr. Chat 20fb20d7f6 Hold the global lock while restoring from a file. 2015-12-29 13:09:36 -08:00
Dr. Chat a6322c7bf4 NativeList getters/setters 2015-12-29 13:09:36 -08:00
Dr. Chat 89c408965e Can't call constructors from other constructors 2015-12-29 13:09:35 -08:00
Dr. Chat ce2d6da2a1 Processor breakpoints: Change iterators to C++11 syntax where necessary 2015-12-29 13:09:35 -08:00
Dr. Chat 7d30e1297a NotifyListener Save/Restore 2015-12-29 13:09:34 -08:00
Dr. Chat 87931369e4 XObject no kernel state constructor 2015-12-29 13:09:34 -08:00
Dr. Chat b3ed0fa445 NativeList default constructor 2015-12-29 13:09:33 -08:00
Dr. Chat 23b6a1f943 Fix xam_net.cc 2015-12-29 13:09:33 -08:00
Dr. Chat 4a3773d2fb XModule Save/Restore 2015-12-29 13:09:32 -08:00
Dr. Chat 93602ed48a No need to double-retain Ke* objects, as having them in the object table is enough. 2015-12-29 13:09:32 -08:00
Dr. Chat a4865bd24a Retain objects when restored into the object table. 2015-12-29 13:09:31 -08:00
Dr. Chat c8a2298b9d Remove ~NotifyListener call to UnregisterNotifyListener (as it's impossible for this to occur) 2015-12-29 13:09:26 -08:00
Dr. Chat 290d5d9594 Fix incorrect double-retaining of objects on restore. 2015-12-29 13:09:24 -08:00
Dr. Chat 3678a22c90 Use TLS to store the current thread. 2015-12-29 13:09:24 -08:00
Dr. Chat 7e88e54cbe XObject::host_object -> XObject::is_host_object 2015-12-29 13:09:23 -08:00
Dr. Chat 1e36ea8b69 Use c_str() when passing a string to sprintf! 2015-12-29 13:09:23 -08:00
Dr. Chat c44742b0e3 XEvent write signaled state 2015-12-29 13:09:22 -08:00
Dr. Chat e54850e1f2 XThread::set_name - Use more efficient xe::format_string instead of a StringBuffer 2015-12-29 13:09:22 -08:00
Dr. Chat e4e1bc1060 Remove dead code from UserModule (how did this even get here?) 2015-12-29 13:09:22 -08:00
Dr. Chat 0b5def1ff6 MappedMemory: Support opening empty files (and extending them) / remapping files / Truncate on close 2015-12-29 13:09:21 -08:00
Dr. Chat 8a9493a048 Remove unused XboxkrnlModule::LaunchModule 2015-12-29 13:09:21 -08:00
Dr. Chat 442f063ddf XThread Save: Handle emulated instructions/MMIO/etc that call out of guest code 2015-12-29 13:09:20 -08:00
Dr. Chat 785824531c Fix the assert on no restore handler found 2015-12-29 13:09:20 -08:00
Dr. Chat 6e0057020c XEvent Save/Restore (TODO: Write signaled state) 2015-12-29 13:09:19 -08:00
Dr. Chat ce92dd5691 ObjectTable Save/Restore (and overloads/PurgeAllObjects/GetAllObjects) 2015-12-29 13:09:19 -08:00
Ben Vanik bbff23a8bb REBASE: Fixing Memory::Reset(). 2015-12-29 13:09:18 -08:00
Dr. Chat 432e32f7c2 memory Save/Restore 2015-12-29 13:09:18 -08:00
Dr. Chat aa7919bd89 emulator.cc savestates
Change UserModule::Launch to be non-blocking (returns the main thread)
2015-12-29 13:09:17 -08:00
Dr. Chat 52ec24ea6a Stash handles rather than native pointers in Ke* objects. 2015-12-29 13:09:17 -08:00
Dr. Chat 4301641bdf XThread Save/Restore 2015-12-29 13:09:16 -08:00
Ben Vanik 194c13f977 REBASE: Fix vector out of range access. 2015-12-29 13:09:16 -08:00
Dr. Chat 5517518d36 XObject savestate setup (Save/Restore, tracks all handles, tracks if host object) 2015-12-29 12:35:59 -08:00
Dr. Chat 1ce6a7580b Fix CaptureStackTrace with null out_stack_hash 2015-12-29 12:35:59 -08:00
Dr. Chat 712a5da64b KernelState::Save/Restore (and misc. changes) 2015-12-29 12:35:58 -08:00
Dr. Chat d99008bfac RawModule::SetAddressRange - Notify the backend about this range. 2015-12-29 12:35:58 -08:00
Dr. Chat 38a09cbcc2 ExecuteRaw: Pass in 0xBC... magic so Xenia will return to the guest caller. 2015-12-29 12:35:57 -08:00
Dr. Chat 6d98628962 Remove Function::Call extern handler shortcut (as we need old behavior for savestates) 2015-12-29 12:35:56 -08:00
Dr. Chat 67a45203e3 Uninstall the X64 backend exception callback on exit. 2015-12-29 12:35:56 -08:00
Dr. Chat 62351a62de filesystem::CreateFile 2015-12-29 12:35:55 -08:00
Dr. Chat e206d13af7 Flag mfmsr/mtmsr/mtmsrd as context-synchronizing instructions 2015-12-29 12:35:04 -08:00
Dr. Chat ed85346f3b XObject Save/Restore 2015-12-29 12:32:50 -08:00
Dr. Chat 938d849c06 ByteStream class 2015-12-29 12:32:50 -08:00
Dr. Chat 4a13316daa Track export data on kernel trampolines as well. 2015-12-29 12:32:49 -08:00
Dr. Chat b8d4f26e46 Fix NtWaitForMultipleObjectsEx definition 2015-12-29 12:32:49 -08:00
Dr. Chat 87cdce1440 Export kBlocking tag 2015-12-29 12:32:48 -08:00
Dr. Chat db8eb83057 Track export data on Guest Functions 2015-12-29 12:32:47 -08:00
Dr. Chat 42c657c40a Remove processor dependency on XThread for breakpoints 2015-12-29 12:32:47 -08:00
Dr. Chat 666f5543a8 Cleanup ThreadState and XThread 2015-12-29 12:32:46 -08:00
Dr. Chat 41d5b41523 Automatically install any CPU breakpoints in any newly-defined functions if necessary. 2015-12-29 12:32:01 -08:00
Dr. Chat d09e3b7953 Fix incorrect backend breakpoints implementation 2015-12-29 12:32:00 -08:00
Dr. Chat 28468f8a18 cpu::Processor now tracks a pointer to the emulator. 2015-12-29 12:32:00 -08:00
Dr. Chat 7d59258839 Processor::ExecuteRaw
Changed the breakpoint lock to a recursive mutex.
2015-12-29 12:28:57 -08:00
Dr. Chat ac706f6923 Allow breakpoint addresses to be changed after creation 2015-12-29 12:28:56 -08:00
Dr. Chat e383e2f101 Processor breakpoint support 2015-12-29 12:28:56 -08:00
Ben Vanik 5019f1aa98 Possible fix for failing to create files. 2015-12-29 11:02:28 -08:00
Ben Vanik 214957da3a Adding finer-grained instruction classification. 2015-12-29 11:02:00 -08:00
Ben Vanik cc72de0f64 Moving disasm to new tables.
Also adding useful CPU docs.
2015-12-28 20:49:22 -08:00
Ben Vanik cd938be678 Removing all uses of the old PPC tables besides disasm. 2015-12-28 10:08:38 -08:00
Ben Vanik 990d973c74 New ppc opcode decoder.
Seems to work and match up with the old decoder (which may be bad).
Old decoder remains until all functionality is replaced.
2015-12-27 22:53:05 -08:00
Ben Vanik ca8d658ffe Speeding up PPC tests significantly. 2015-12-27 12:03:30 -08:00
Ben Vanik 5de82887fa Adding build version information to main window/log. 2015-12-27 11:53:37 -08:00
Ben Vanik 5f61c6ad07 Adding icon. 2015-12-27 11:09:19 -08:00
Ben Vanik 484972db30 Fixed mutation of vectors during iteration. 2015-12-27 10:48:38 -08:00
Ben Vanik 0a316808a5 Include order fixes. 2015-12-27 10:27:46 -08:00
Ben Vanik 6b92c1a01e Moving GPU flags to graphics_system.cc so all graphical exes get them. 2015-12-27 10:21:11 -08:00
Ben Vanik 629a75c162 Merge pull request #493 from parkerlamb/nv_optimus
Nvidia Optimus support
2015-12-27 10:15:40 -08:00
Ben Vanik 0e58208add Dropping elemental-forms and swapping out with imgui.
Too much code for such little use. This should simplify porting.
2015-12-26 20:25:24 -08:00
Parker Lamb b59ee24f5d NvOptimusEnablement and AmdPowerXpressRequestHighPerformance symbols are
now exported for laptops with dual graphics
2015-12-26 22:14:13 -06:00
Ben Vanik 3b11de2c2d Merge pull request #492 from DrChat/gl_backend_changes
GL Backend Changes/Fixes
2015-12-22 23:52:46 -08:00
Dr. Chat 990a8baf1b Fix cases where GL_INFO_LOG_LENGTH returns 0. 2015-12-22 20:15:07 -06:00
Dr. Chat b49114bad6 GLContext: Keep track of robust access support for WasLost 2015-12-22 15:53:51 -06:00
Dr. Chat cde39953ab Fix TracePlayer::PlayTraceOnThread not signifying it's done with the trace if a break is pending. 2015-12-22 15:46:39 -06:00
Dr. Chat a4f6e60e20 Blitter::Draw assert on zero src texture 2015-12-22 15:44:51 -06:00
Dr. Chat ab93a6bf64 If last framebuffer texture isn't set, use active framebuffer otherwise don't draw. 2015-12-22 15:44:02 -06:00
Dr. Chat 919d3d080b Assert on context loss due to a TDR 2015-12-22 15:43:08 -06:00
Dr. Chat 59bee898f7 Always output the shader info log if it's not empty. 2015-12-22 14:41:18 -06:00
Dr. Chat 30eda6909f GLContext::WasLost - Determines if we lost the context due to a TDR or another outstanding event. 2015-12-20 21:13:51 -06:00
Dr. Chat 0c60cc5f48 Fix GLContext::AssertExtensionsPresent not clearing the context after use 2015-12-20 20:55:04 -06:00
Dr. Chat cf41a84fe3 Fix broken check against bool constants
Fix always terminating execution in cexece branches (these are sometimes followed by exece branches)
2015-12-20 20:53:31 -06:00
sephiroth99 a281f6d70d ObjectTable: Remove explicit specialization in class scope
Function template 'LookupObject' in ObjectTable class has
a specialization in class scope, which is not allowed.

While MSVC seems OK with that, clang complains about it.

Fix this issue by moving the definition of the specialisation
outside the class scope, and moving the declaration in the
'.cc' file.
2015-12-17 01:04:44 -05:00
Ben Vanik 15816327b4 Renaming xe::cpu::frontend to xe::cpu::ppc. 2015-12-14 21:17:55 -08:00
Ben Vanik 9273359cdd Removing vestigial ContextInfo. 2015-12-14 20:57:14 -08:00
Ben Vanik 5e6c1f5a50 Removing some dead code. 2015-12-14 20:49:50 -08:00
Ben Vanik 826ea60890 gpu-trace-diff tool for running batches of diffs. 2015-12-13 16:59:43 -08:00
Dr. Chat 3ebd53ba11 Fix crandc/crnand/crnor/crorc not properly taking the complement of the CR fields. 2015-12-13 18:32:57 -06:00
Ben Vanik 7419e7eb4a Trace dump tool, for dumping pngs (and in the future more stuff). 2015-12-13 11:59:14 -08:00
Ben Vanik 95b0ecf774 Sharing more of trace viewer code. 2015-12-13 11:22:47 -08:00
Ben Vanik 5db84105c4 Utilizing fallthrough for most shader CF, hopefully speeding things up. 2015-12-13 10:14:35 -08:00
Ben Vanik b5469b57ba Moving temporary registers to exec blocks. ps may still need to be shared. 2015-12-07 22:57:28 -08:00
Ben Vanik 85b1797b9e Workaround for nvidia bug with dynamic local memory access. 2015-12-07 22:55:17 -08:00
Ben Vanik ec113275dc Making texture swizzles dynamic. Seems to fix some color swap issues.
And probably exposes many more ;)
2015-12-07 22:39:33 -08:00
Ben Vanik 09022a6ad3 gl_FragCoord support. 2015-12-07 20:45:02 -08:00
Ben Vanik 1f773f14b3 Fixing vfetch_mini use. 2015-12-07 19:16:32 -08:00
Ben Vanik 522ff9d23e Alternate indirect buffer command. 2015-12-07 19:16:01 -08:00
Ben Vanik ed0b97813a Loops in shaders (no TDRs! woo!). 2015-12-07 13:03:57 -08:00
Ben Vanik 367ca09f1d Don't duplicate vf bindings. 2015-12-07 13:03:35 -08:00
sephiroth99 f154b7ed59 Fix compilation error of translated GLSL shader.
Comparison of uvec2 and int is not possible, explicitly
use a zero-value uvec2.
2015-12-07 01:39:17 -05:00
Ben Vanik 280c0b35f6 Basic control flow skeleton and jumps implemented.
A-train's trees draw right now!
Helps a bit with #473 but still need to implement loops.
2015-12-06 11:44:22 -08:00
Ben Vanik 934b0d5bbc Marking unimplemented translations as non-fatal. 2015-12-06 11:01:04 -08:00
Ben Vanik c86e479214 Replacing old Shader with TranslatedShader. 2015-12-06 10:36:07 -08:00
Ben Vanik 083f936bbc aL placeholder until loops are implemented. 2015-12-06 00:53:25 -08:00
Ben Vanik 51a8002629 Moving GL backend to new shader translator.
This seems to make a lot of things better, but may also break things.
Cleanup to follow.
2015-12-06 00:48:41 -08:00
Ben Vanik 295c62c7a4 Guarding protect-on-release behavior behind --protect_on_release.
Workaround for #456 until it can be identified.
2015-12-05 23:27:25 -08:00
Ben Vanik 81d0376106 Fixing use before check for null. 2015-12-05 23:24:40 -08:00
Ben Vanik 52f339cee4 Removing bogus assert. 2015-12-05 23:24:17 -08:00
Ben Vanik 2b3b423776 Mostly complete new GLSL translator (modulo flow control). 2015-12-05 17:44:06 -08:00
Ben Vanik 0058cae901 Adding pseudo code for all ucode ops from AMD docs. 2015-12-05 03:10:45 -08:00
Ben Vanik 4bac581d01 Merge pull request #475 from sephiroth99/varfix
VS2015 Update 1 fix + GLContext small cleanup
2015-12-03 22:39:19 -08:00
Ben Vanik 00240945fe Cleanup for the latest clang-format version. 2015-12-03 19:52:02 -08:00
Ben Vanik 249b952de9 Adding some comments. 2015-12-02 17:37:48 -08:00
Dr. Chat bc1e7684ca Pass rounding mode from i->flags for OPCODE_CONVERT 2015-12-02 14:03:15 -06:00
Dr. Chat 17d18f7154 Implement a few cases for Value::Cast/Convert 2015-12-02 14:01:28 -06:00
Dr. Chat 57a823ae39 Add (commented out) code to setup page protections for xex modules. 2015-12-01 19:53:17 -06:00
Dr. Chat 525d62d437 constant OPCODE_CONVERT and more cases for OPCODE_LOAD 2015-12-01 19:51:28 -06:00
Dr. Chat 873016f06f Fix double-swap in constant load 2015-12-01 19:03:51 -06:00
sephiroth99 e8296a8608 ui/gl: GLContext: access directly class member
In ::EndSwap, dc_ class member was accessed through a function. Access
it directly like it is done elsewhere in the class.

It is also the only place where it is used, so remove the function in
question.
2015-11-30 22:59:30 -05:00
sephiroth99 f367c4ba7b Fix compilation under VS2015 Update 1 2015-11-30 22:56:42 -05:00
Ben Vanik 82fe65475e Fixing sqrt/rsqrt mixup.
Queue the 'how did this ever work?!'
2015-11-30 17:22:08 -08:00
Ben Vanik cd50aac6d2 Skeleton SPIRV translator. 2015-11-29 19:45:55 -08:00
Ben Vanik d2f7cc1602 Reworking translator code to be pretty sexy. 2015-11-29 16:55:42 -08:00
Ben Vanik 65130edaa1 First pass ShaderTranslator base type, able to disasm in msft style. 2015-11-28 16:19:04 -08:00
Ben Vanik bea8870700 Shuffling old-style ucode.h under gl4. 2015-11-28 16:10:27 -08:00
Ben Vanik 71b9995448 Skeleton SPIRV shader translator. 2015-11-28 16:10:26 -08:00
sephiroth99 f4dae2335c premake: Small fixes to various premake files
In particular, add the "src" group to apu/xaudio2 project, which was
missing.
2015-11-28 01:53:26 -05:00
raven02 44a1fa0c9c Fix distance vector 2015-11-28 13:17:29 +08:00
Ben Vanik 51c3df1e2e Making mtmsr & co synchronize the context. 2015-11-25 17:37:20 -08:00
Ben Vanik dfd92757a9 Adding CONTEXT_BARRIER to force the PPC context to synchronize.
This is just an annotation right now, as it's not actually needed.
2015-11-25 14:48:36 -08:00
Ben Vanik 54215d9fb4 Write shader binaries with --dump_shaders and load them in the compiler. 2015-11-24 20:45:23 -08:00
Ben Vanik 89172da4b7 Unplumbing program_cntl and simplifying shader loading. 2015-11-24 20:24:35 -08:00
Ben Vanik 6a546ebe4d Shuffling spirv code so it's not tied to xe::gpu.
Will make it easier to use in standalone apps.
2015-11-24 19:49:05 -08:00
Ben Vanik cf68d02142 Lots of cleanup in SpvEmitter. 2015-11-23 21:20:59 -08:00
Ben Vanik a7f6c1a09c Prevent seeking while playing a trace. 2015-11-22 17:44:24 -08:00
Ben Vanik e35fdff632 Porting glslang SPIRV stuff and cleaning some of it up. 2015-11-22 17:42:24 -08:00
Ben Vanik 1b1ff07bf5 Assembler/disassembler via SPIRV-Tools. 2015-11-22 17:42:23 -08:00
Ben Vanik 9072a38f38 Renaming spirv files so VS highlights them correctly. 2015-11-22 17:42:23 -08:00
Dr. Chat 414519fb6c Expose a playback percentage rather than pointers in TracePlayer 2015-11-22 11:36:31 -06:00
Dr. Chat a59e83e0d0 Style 2015-11-22 10:15:50 -06:00
Dr. Chat 646db5b8be Disable controller UI while playing a trace 2015-11-22 09:54:25 -06:00
Dr. Chat 1078d21bd2 Stop resizing columns for the fetch constants 2015-11-21 22:37:24 -06:00
Dr. Chat e565bafdab Prevent interaction with the command list UI while a trace is still playing 2015-11-21 22:29:47 -06:00
Dr. Chat 7c25795c05 Display texture guest address and swizzle information 2015-11-21 21:45:11 -06:00
Dr. Chat 7a1d7bd652 Display a progress bar while the command processor is playing a trace
- Masks a race condition in the texture cache b/t the UI thread and the GL4 command processor
2015-11-21 21:44:35 -06:00
Dr. Chat 7640448509 TracePlayer: Allow seeking forward more than one command 2015-11-21 21:42:24 -06:00
Dr. Chat 2a88225500 TracePlayer - Expose internal playback pointers 2015-11-21 21:41:41 -06:00
Ben Vanik b750875e9d Fixing style. 2015-11-21 19:07:07 -08:00
Robert Dupuis bdec7a063f Implemented REG_TO_MEM GPU opcode 2015-11-21 21:20:34 -05:00
Ben Vanik 1956b8708e Fixing include orders and whitelisting others.
Will be broken until clang SVN 253772 is available on travis/snapshots.
2015-11-21 11:34:46 -08:00
Ben Vanik add68c3743 spirv headers and compiler skeleton. 2015-11-21 11:22:24 -08:00
Dr. Chat 0f2f4ab9b6 Compress/decompress memory automatically in trace files 2015-11-20 17:12:13 -06:00
John Godgames bcec142d3e Fixes DXT1 Alpha issues in certain games
https://www.opengl.org/wiki/S3_Texture_Compression#DXT1_with_1-bit_Alpha
2015-11-20 05:10:28 +01:00
Dr. Chat 9ff8aa96e7 Disable GL_CULL_FACES when drawing rectangle lists. 2015-11-17 22:20:43 -06:00
Ben Vanik a556316ba2 Skip xma read when at the end of the stream. 2015-11-16 19:40:43 -08:00
Ben Vanik 2602d54775 Merge pull request #461 from DrChat/trace_viewer_open_dlg
Trace Viewer: Display a File Open Dialog if no File Specified
2015-11-16 18:26:17 -08:00
Dr. Chat f50e2ab10c Trace Viewer: Display a file picker if the user doesn't supply a file on the command line. 2015-11-15 09:15:20 -06:00
Dr. Chat 3efc7f339a Make sure texture swizzles match before performing a copy 2015-11-14 22:34:34 -06:00
Dr. Chat 4dfe1addaa Verify that LookupObject actually returns an object of the requested type. 2015-11-12 19:06:15 -06:00
Dr. Chat 7fc22f1987 Add a static kType field to all objects 2015-11-12 19:01:55 -06:00
Ben Vanik b970b970f0 Removing another scalar component swap from #273. 2015-11-12 15:53:16 -08:00
Ben Vanik 3d2a5b2495 Reverting depth clear restriction in #330.
The comment is still true: games seem to need more clears.
2015-11-12 14:15:59 -08:00
Ben Vanik e858f87e3e Reverting component changes from #273. 2015-11-12 14:14:37 -08:00
Ben Vanik b6b685aa72 Fixing lint error. 2015-11-11 15:44:24 -08:00
Dan Weatherford dca0ab38d5 Show relative constant fetch in the microcode disassembler 2015-11-11 17:13:58 -06:00
Dan Weatherford 2fda17cf3c Fix relative constant fetch on second source operand of shader instruction
The sense for this test was backwards, causing AppendSrcReg to read the wrong
const_n_rel_abs flag if the first operand was not a constant fetch.
2015-11-11 17:13:48 -06:00
Ben Vanik 6c95ca1cdb Moving graphics context creation around to hide actual creation.
Makes it easier to support APIs that don't have a concept of sharing.
2015-11-10 17:38:57 -08:00
Ben Vanik d8fa54ffc4 Fixing super class call in gl4 cp. 2015-11-09 20:28:09 -08:00
Dan Weatherford e178853e46 Partially implement XamUserWriteProfileSettings
Handles writing binary blob settings to the user profile which can then be read
by XamUserReadProfileSettings.
2015-11-09 16:53:52 -06:00
Ben Vanik ca5e8fa073 Adding a way to get an hmodule. 2015-11-09 13:59:06 -08:00
Ben Vanik 93708c0c1c xe::format_string utility. 2015-11-09 11:13:34 -08:00
Ben Vanik 65e0e907d8 Normalizing the name of the GL window demo. 2015-11-08 19:11:44 -08:00
Dr. Chat c98d10545e Invalidate MMIO Ranges when memory is released or access protections are changed. 2015-11-08 19:14:06 -06:00
Dr. Chat 529227e4e6 MMIOHandler::InvalidateRange 2015-11-08 18:18:28 -06:00
Ben Vanik 8784de0162 Cleaning up unneeded file. 2015-11-08 15:08:27 -08:00
Ben Vanik 5834a42ef3 Dependency injection for apu/gpu/hid. 2015-11-08 15:02:24 -08:00
Ben Vanik 9a6c5c5c74 95% of trace viewer now gpu backend agnostic. 2015-11-08 14:05:37 -08:00
Ben Vanik b5a18b5462 Factoring out a lot of reusable GPU code from gl4/. 2015-11-08 11:54:36 -08:00
Ben Vanik b26f4a5719 Moving imgui input to a shared place. 2015-11-07 12:42:44 -08:00
Ben Vanik 1d9f73ad13 HID demo. 2015-11-07 12:31:07 -08:00