Age | Commit message (Collapse) | Author |
|
|
|
gl_texture_cache: Minor fixes and style changes
|
|
format_lookup_table: Fix ZF32_X24S8 component types
|
|
vk_texture_cache: Implement generic texture cache on Vulkan
|
|
|
|
Component types for ZF32_X24S8 were using UNORM. Drivers will set FLOAT,
UINT, UNORM, UNORM; causing a format mismatch. This commit addresses
that.
|
|
Co-Authored-By: MysticExile <30736337+MysticExile@users.noreply.github.com>
|
|
maxwell_3d: Make dirty_pointers private
|
|
renderer_opengl/utils: Forward declare private structs
|
|
This isn't used outside of the class itself, so we can make it private
for the time being.
|
|
|
|
Nothing from these headers are used, so they can be removed.
|
|
Keeps the definitions hidden and allows changes to the structs without
needing to recompile all users of classes containing said structs.
|
|
|
|
|
|
|
|
|
|
control_flow: Silence -Wreorder warning for CFGRebuildState
|
|
gl_shader_cache: Remove unused variables
|
|
Organizes the initializer list in the same order that the variables
would actually be initialized in.
|
|
GUI/configure: resize hotkeys action column to fit content
|
|
Given this isn't used, this can be removed entirely.
|
|
Avoids several reallocations of std::vector instances where applicable.
|
|
Eliminates a few unnecessary constructions of std::vectors.
|
|
shader_ir/memory: Implement u16 and u8 for STG and LDG
|
|
shader_ir/texture: Simplify AOFFI code
|
|
maxwell_to_vk: Implement GL_CLAMP hacking Nvidia's driver
|
|
core/kernel: Fix GetTotalPhysicalMemoryUsed.
|
|
It currently ignores PBO linearizations since these should be dropped as
soon as possible on OpenGL.
|
|
|
|
|
|
module._memory was already moved over to a new shared_ptr.
So code_memory_size was not increased at all.
This lowers the heap space and so saves a bit of memory, usually between 50 to 100 MB.
This fixes a regression of c0a01f3adc466d07fc27020048e82cca60988970
|
|
Comment hardcoded SPIR-V modules.
|
|
Nvidia's driver defaults invalid enumerations to GL_CLAMP. Vulkan
doesn't expose GL_CLAMP through its API, but we can hack it on Nvidia's
driver using the internal driver defaults.
|
|
|
|
Using the same technique we used for u8 on LDG, implement u16.
In the case of STG, load memory and insert the value we want to set
into it with bitfieldInsert. Then set that value.
|
|
This currently only supports quad arrays and u8 indices.
In the future we can remove quad arrays with a table written from the
CPU, but this was used to bootstrap the other passes helpers and it
was left in the code.
The blob code is generated from the "shaders/" directory. Read the
instructions there to know how to generate the SPIR-V.
|
|
|
|
vk_pipeline_cache: Initial implementation
|
|
service: vi: Implement CloseLayer.
|
|
Given a pipeline key, this cache returns a pipeline abstraction (for
graphics or compute).
|
|
This abstractio represents the state of the 3D engine at a given draw.
Instead of changing individual bits of the pipeline how it's done in
APIs like D3D11, OpenGL and NVN; on Vulkan we are forced to put
everything together into a single, immutable object.
It takes advantage of the few dynamic states Vulkan offers.
|
|
This abstraction represents a Vulkan compute pipeline.
|
|
This function allows us to share code between compute and graphics
pipelines compilation.
|
|
|
|
|
|
vk_update_descriptor/vk_renderpass_cache: Add pipeline cache dependencies
|
|
renderer_vulkan: Buffer cache, stream buffer and memory manager changes
|
|
The renderpass cache is used to avoid creating renderpasses on each
draw. The hashed structure is not currently optimized.
|
|
The update descriptor is used to store in flat memory a large chunk of
staging data used to update descriptor sets through templates. It
provides a push interface to easily insert descriptors following the
current pipeline. The order used in the descriptor update template has
to be implicitly followed. We can catch bugs here using validation
layers.
|