2016-06-13

Xenia Git (2016/06/13)

EmuCR: XeniaXenia Git (2016/06/13) is compiled. Xenia is an experimental emulator for the Xbox 360. It does not run games (yet).

Xenia Status:
- Some code runs. [Insert any game name here] doesn't.
- Asserts! Crashes! Hangs! Blank screens!

Xenia Git Changelog:
* Add a few more vector tests
* Constant Propagation for OPCODE_VECTOR_ADD
* Appveyor: Swap to xenia-build and only build the projects we need.
* Appveyor: Run tests from already-built test binaries
* SPIR-V: Declare all inputs/outputs in OpEntryPoint
* Appveyor: Include xenia.pdb in the artifacts
* Update spirv-tools
* Un-whitelist the vulkan branch
* Merge branch 'vulkan'
* Revert the default graphics backend to GL4 (in preparation of merge to master)
* Set basePipelineIndex to -1 instead of 0 to indicate invalid.
* Rebuild shaders with the latest compiler
* Merge pull request #556 from DrChat/spv_translator
Vulkan Changes
* RenderCache: Hardcode surface height to 2560
Fix a couple of other things
* Pass vertex buffer endianness into the BufferCache
IssueCopy: Actually issue the pipeline barrier to transition the image
* Find the Vulkan SDK from %VULKAN_SDK% environmental variable.
* VK Immediate Drawer: Properly transition texture layouts
Support wrapping of textures not created here
* TextureCache: Fix trying to erase a resolve texture that isn't in the resolve textures list.
* TextureCache: Fix a few null pointer bugs
Ordering of in-flight descriptor sets
Change staging buffer size
Free all samplers on exit
* Initialize rasterDiscardEnable to VK_FALSE
* VK: Enable full rotation / Set render_state to nullptr on failure / Fix format info in texture resolves
* Whoops - fix setting the wrong host base for some graphics allocations.
* Don't write to color targets in depth-only mode.
* VK: Remove alphaToOne feature requirement
* Vulkan CP: Override frame traces if renderdoc is attached
* VK: Enable independentBlend feature
* Fixup circular buffers for full rotation
* Fix a memory leak in fenced pools.
* CP: Don't check for shader validity here
Fix a lousy typo in PrepareTextureSet
* Pipeline Cache: Translate shaders when program cntl register is available
* SPIR-V: Use the register count from the program control register
Workaround for broken OpBitFieldUExtract on NVIDIA drivers
kRcpc/kRcpf/kRsqc/kRsqf
Fix broken ps_ usage
* Shaders: Track the register count from the program control register (if available)
* Fix ALU scalar swizzles (Possibly)
* Disable Vulkan native MSAA by default for now.
* SPIR-V: Misc. IR utility functions
* Use Vulkan as the default graphics backend.
* SPIR-V: WIP shader compiler / optimizations / alpha test implementation
* BaseFencedPool::has_open_batch (and other uncommitted changes)
* Vulkan CP: Fix calculating an invalid copy destination base address when sizeof(texel) != 4
* Vulkan CP: Add in separate swap-chain images
Some other changes I can't remember
* TextureCache: Fix up some synchronization flaws (deleting in-use textures/etc)
Fix texture binding IDs not matching fetch instruction IDs.
Fix some bad texture format matching.
Add access watches
* PipelineCache: Support shader disasm dumps for nvidia cards.
Fix MSAA 2X multiplier.
* RenderCache: Account for MSAA when calculating tile sizes.
Add a new flag to enable native MSAA (this does not work properly at the moment)
* Skip the wrapping packet end after parsing IB end (to avoid false draws appearing)
* Merge branch 'vulkan' of github.com:benvanik/xenia into spv_translator
* Merge pull request #554 from DrChat/spv_translator
Fix texture fetches
* TraceViewer: Build a tree of all command buffers and display that instead of a flat list.
* Fix the Vulkan immediate drawer not drawing lines.
* SPIR-V: Hack in OpSelectionMerge as hints to NVidia's shader compiler (TODO: Make a Shader Compiler)
* CircularBuffer: use std::list for allocations instead of a vector.
* BufferCache: Use a CircularBuffer as the transient buffer.
* SPIR-V: Batch predicated instructions together into a single block.
Add Post-Translation validation.
Fix a couple of type-related typos.
* SPIR-V Validator util class
* Can't use CmdCopyBufferToImage or vice versa for depth and stencil.
* CircularBuffer remove Discard functionality and allow rotation
* Enable native MSAA
Copy back EDRAM buffers in order by base offset.
* Texture uploads/basic formats
Fixed swizzle one/zero mismatch
Sampler setup
Remove samplers from the descriptor set layout
* FencedPool::CancelBatch
* SPIR-V Max4
* Fix texture uploads
* Wipe the buffer cache in ClearCache for now.
* Update the rectangle list shader
* Formatting.
* VulkanShader::Prepare - return false if vkCreateShaderModule failed.
* Vulkan util Fence class
* CP: Use a single command buffer for every frame, reuse render passes/pipelines if not dirty
Hook up resolves and swaps
* PipelineCache::ConfigurePipeline - Inform the caller if the pipeline is dirty or they can reuse the previously bound pipeline.
Make SetDynamicState public.
* Basic texture uploads/address lookups/etc
Freeing of descriptor sets when the GPU is finished with them.
* RenderCache::dirty() - used to tell if we need to begin a new pass
Round all pixel pitch/heights up before dividing.
* Vulkan Circular Buffer
* Primitive type makes rasterization state dirty too!
* SPIR-V Dst
Fix a few bugs in the translator
* Add in Xenos events
* Pass the physical frontbuffer address into the CP
* Physical write watches -> access watches (read and/or write watching)
* Pipeline stencil state
* SPIR-V Dp2Add/Dp3
* RenderCache::BlitToImage
* Fix a few stale data usage bugs in the pipeline cache.
Hook up part of depth/stencil tests/writes
* RenderCache::ClearEDRAMColor/ClearEDRAMDepthStencil
* RenderCache: Track color target / depth target usage, refactor RawCopyToImage
* Blit Vulkan CP output to the main window's swap chain
* Add a specialized copy command buffer to the vulkan swap chain
* Change how the render cache renders into EDRAM.
Rendering directly into the EDRAM buffer is bad because we don't know how the GPU lays out memory when it draws. Instead, we create temporary render targets and copy EDRAM contents to/from those temporary RTs before and after each draw.
* Fix Vulkan texture drawing.
* Beginnings of texture conversion/uploads
* Fix spirv-tools incorrect includes
* Updated local clang-format.
* Scalar logc, fix log
* Use spv::NoPrecision instead of DecorationInvariant
Set samplers/images as uniform constants
* Short-circuit draw calls if the render target's pitch is 0
* Fix incorrect images/samplers definitions
ps_param_gen and fix interpolators being copied incorrectly
* Whoops
* Fix texture fetches
* Textures are now in descriptor set 1.
* Merge branch 'vulkan' of github.com:benvanik/xenia into vulkan
* Merge pull request #553 from DrChat/spv_translator
More SPIR-V Opcodes
* First-pass image sampling
* SetpXXPush
* SetpPop/SetpRstr
* Floors/Frcs/Truncs
* Exp2
* Use vec4 zero rather than float zero where needed
* Vec Log
* MaxA
* Dp4
* MaxAsf
* MaxAs/SetpClr
* Short-circuit if the store has no writes.
* Whoops
* Scalar kill ops
* Vector kill ops
* Actually preserve pv/ps if predicate fails
* Adding texture setup and a dummy grid texture.
* Setup descriptor set for textures.
* Fix viewport inversion.
* Fixing 1/w0 correction.
* Actually configure constant descriptor set.
* Fix buffer alloc alignment and framebuffer comparison.
* Warn and be ok with symbol services failing.
* Capture exe with renderdoc and pass --vulkan_renderdoc_capture_all.
* Merge pull request #552 from DrChat/spv_translator
Fix push constants declaration
* Fix push constants declaration
* Merge pull request #551 from DrChat/spv_translator
Apply window scaling
* Merge branch 'vulkan' of github.com:benvanik/xenia into spv_translator
* Fixing pool shutdown.
* Apply window scaling
* Pushing constants.
* Merge pull request #550 from DrChat/spv_translator
Vertex Shader Vertex Formatting
* Add code to correct vertex format
Move translated shader code to its own function
Add push constants
* Vector Cndxx
* Private->Function variables, fragment output, geometry shader tweaks.
* Merge pull request #549 from DrChat/spv_translator
SPV Quick Fixes
* Fix using incorrect result types for compares
* ALU predicated discard
* Scalar Sxxx
* Merge branch 'vulkan' of github.com:benvanik/xenia into vulkan
* Merge pull request #548 from DrChat/spv_translator
Add Vulkan Backend as a Choice
* Add the vulkan backend as a choice in xenia-app
* Making memory API less error prone; fixes buffer/constant uploads.
* Merge pull request #547 from DrChat/spv_translator
Couple Quick Fixes to SPV translator
* Add name information to constants
Fix Rcp/Rsq OpSelect incorrect usage
* For now, all 512 constants live in the same block.
* Merge pull request #546 from DrChat/spv_translator
(WIP) SPIR-V Shader Translator
* (WIP) SPIR-V Shader Translator
* Porting GL4 geometry shaders. Likely not working.
* Adding `xb genspirv` to do glsl->.h.
* Adding pipeline caching.
* Implementing a lot of the pipeline state setting.
* Skeleton leaky hacky hardcoded pipeline setup.
* Buffer uploads (without reclaiming, yet).
* Not crashing (but also likely not working) EDRAM emulation.
* A night's worth of work: documented EDRAM. Seems mostly right.
* Starting render passes.
* Shader modules and plumbing.
* Merge pull request #542 from DrChat/vulkan_misc
Fix Validator Error (with swapchains)
* Query to see if the physical device supports a swapchain surface to silence a validation layer error.
* Those are really pointers - need those bits.
* WIP rough sketch of vulkan backend structure.
* Switching from fork to main glslang spirv builder.
* Adding mutliple queue/shared queue support.
* Adding a subset of the glslang repo dealing with spirv.
The main repo is a mess.
* Fix headers include guards.
* Count packed bytes used by a constant map.
* Implementing shader constant register map construction.
* Skeleton xenia::gpu::vulkan implementation, enough to start trace viewer.
* Recreate swap chain on window resize.
* Fixing swap chain scissoring; surface is still not resized right.
* Initial vulkan context and immediate drawer.
Extremely rough, just checking in so DrChat can snoop.

Download: Xenia Git (2016/06/13)
Source: Here

0 Comments

Post a Comment