Age | Commit message (Collapse) | Author |
|
yuzu/bootmanager: Remove {glx,wgl}MakeCurrent on SwapBuffers
|
|
MakeCurrent is a costly (according to Nsight's profiler it takes a tenth
of a millisecond to complete), and we don't have a reason to call it
because:
- Qt no longer signals a warning if it's not called
- yuzu no longer supports macOS
|
|
core/memory + arm/dynarmic: Use a global offset within our arm page table.
|
|
video_core: Block in WaitFence.
|
|
vk_descriptor_pool: Initial implementation
|
|
nifm: Only return that there's an internet connection when there's a BCATServer
|
|
Shader_IR: add the ability to amend code in the shader ir.
|
|
|
|
Co-Authored-By: Mat M. <mathew1800@gmail.com>
|
|
NvServices: Correct Ioctl Remap.
|
|
yuzu: Remove Maxwell debugger
|
|
This was carried from Citra and wasn't really used on yuzu. It also adds
some runtime overhead. This commit removes it from yuzu's codebase.
|
|
maxwell_to_gl: Implement missing primitive topologies
|
|
Create a large descriptor pool where we allocate all our descriptors
from. It has to be wide enough to support any pipeline, hence its large
numbers.
If the descritor pool is filled, we allocate more memory at that moment.
This way we can take advantage of permissive drivers like Nvidia's that
allocate more descriptors than what the spec requires.
|
|
This saves us two x64 instructions per load/store instruction.
TODO: Clean up our memory code. We can use this optimization here as well.
|
|
shader/p2r: Implement P2R Pr
|
|
This commit introduces a mechanism by which shader IR code can be
amended and extended. This useful for track algorithms where certain
information can derived from before the track such as indexes to array
samplers.
|
|
vk_image: Add an image object abstraction
|
|
|
|
vk_staging_buffer_pool: Add a staging pool for temporary operations
|
|
This function is called rarely and blocks quite often for a long time.
So don't waste power and let the CPU sleep.
This might also increase the performance as the other cores might be allowed to clock higher.
|
|
|
|
gl_rasterizer: Allow rendering without fragment shader
|
|
shader/texture: Implement AOFFI and PTP for TLD4 and TLD4S
|
|
Rendering without a fragment shader is usually used in depth-only
passes.
|
|
The job of this abstraction is to provide staging buffers for temporary
operations. Think of image uploads or buffer uploads to device memory.
It automatically deletes unused buffers.
|
|
This object's job is to contain an image and manage its transitions.
Since Nvidia hardware doesn't know what a transition is but Vulkan
requires them anyway, we have to state track image subresources
individually.
To avoid the overhead of tracking each subresource in images with many
subresources (think of cubemap arrays with several mipmaps), this commit
tracks when subresources have diverged. As long as this doesn't happen
we can check the state of the first subresource (that will be shared
with all subresources) and update accordingly.
Image transitions are deferred to the scheduler command buffer.
|
|
This commit corrects a padding value in Ioctl Remap that was actually an
offset to the mapping address.
|
|
fixed_pipeline_state: Define structure and loaders
|
|
gl_rasterizer: Implement RASTERIZE_ENABLE
|
|
Marks as noexcept Hash, operator== and operator!= for consistency.
|
|
The intention behind this hasheable structure is to describe the state
of fixed function pipeline state that gets compiled to a single graphics
pipeline state object. This is all dynamic state in OpenGL but Vulkan
wants it in an immutable state, even if hardware can edit it freely.
In this commit the structure is defined in an optimized state (it uses
booleans, has paddings and many data entries that can be packed to
single integers). This is intentional as an initial implementation that
is easier to debug, implement and review. It will be optimized in later
stages, or it might change if Vulkan gets more dynamic states.
|
|
|
|
Many of these topologies are exclusively available in OpenGL.
|
|
gl_shader_cache: Style changes
|
|
vk_resource_manager: Catch device losses and other changes
|
|
Texture Cache: Add HLE methods for building 3D textures
|
|
vk_shader_decompiler: Misc changes
|
|
|
|
|
|
certain scenarios.
This commit adds a series of HLE methods for handling 3D textures in
general. This helps games that generate 3D textures on every frame and
may reduce loading times for certain games.
|
|
renderer_vulkan/shader: Add helper GLSL shaders
|
|
vk_shader_decompiler: Use Visit instead of reimplementing it
|
|
shader/memory: Implement LDG.U8 and unaligned U8 loads
|
|
Remove false commentary. Not dividing by 4 the size of shared memory is
not a hack; it describes the number of integers, not bytes.
While we are at it sort the generated code to put preprocessor lines on
the top.
|
|
|
|
ExprCondCode visit implements the generic Visit. Use this instead of
that one.
As an intended side effect this fixes unwritten memory usages in cases
when a negation of a condition code is used.
|
|
P2R dumps predicate or condition codes state to a register. This is
useful for unit testing.
|
|
|
|
shader/conversion: Implement byte selector in I2F
|