- Dec 26, 2019
-
-
ReinUsesLisp authored
Rendering without a fragment shader is usually used in depth-only passes.
-
- Dec 25, 2019
-
-
Fernando Sahmkow authored
fixed_pipeline_state: Define structure and loaders
-
bunnei authored
gl_rasterizer: Implement RASTERIZE_ENABLE
-
- Dec 24, 2019
-
-
ReinUsesLisp authored
Marks as noexcept Hash, operator== and operator!= for consistency.
-
- Dec 23, 2019
-
-
ReinUsesLisp authored
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.
-
ReinUsesLisp authored
-
- Dec 22, 2019
-
-
bunnei authored
gl_shader_cache: Style changes
-
bunnei authored
vk_resource_manager: Catch device losses and other changes
-
bunnei authored
Texture Cache: Add HLE methods for building 3D textures
-
Fernando Sahmkow authored
vk_shader_decompiler: Misc changes
-
Fernando Sahmkow authored
-
Fernando Sahmkow authored
-
Fernando Sahmkow authored
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.
-
Fernando Sahmkow authored
renderer_vulkan/shader: Add helper GLSL shaders
-
Fernando Sahmkow authored
vk_shader_decompiler: Use Visit instead of reimplementing it
-
bunnei authored
shader/memory: Implement LDG.U8 and unaligned U8 loads
-
- Dec 21, 2019
-
-
ReinUsesLisp authored
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.
-
ReinUsesLisp authored
-
ReinUsesLisp authored
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.
-
- Dec 20, 2019
- Dec 19, 2019
-
-
ReinUsesLisp authored
-
ReinUsesLisp authored
Notify the programmer when a request to release a fence is invalid because the fence is already free.
-
ReinUsesLisp authored
This allows us to put VKFenceWatch inside a std::vector without storing it in heap. On move we have to signal the fences where the new protected resource is, adding some overhead.
-
ReinUsesLisp authored
VK_NV_device_diagnostic_checkpoints allows us to push data to a Vulkan queue and then query it even after a device loss. This allows us to push the current pipeline object and see what was the call that killed the device.
-
ReinUsesLisp authored
When full decompilation was enabled, labels were not being inserted and instructions were misused. Fix these bugs.
-
ReinUsesLisp authored
Avoid changing gl_Position when the NDC used by the game is [0, 1] (Vulkan's native).
-
ReinUsesLisp authored
Some games write from fragment shaders to an unexistant framebuffer attachment or they don't write to one when it exists in the framebuffer. Fix this by skipping writes or adding zeroes.
-
bunnei authored
gl_shader_decompiler: Add missing DeclareImages
-
bunnei authored
shader_bytecode: Fix TLD4S encoding
-
ReinUsesLisp authored
-
ReinUsesLisp authored
-
bunnei authored
vk_scheduler: Delegate commands to a worker thread and state track
-
- Dec 18, 2019
-
-
ReinUsesLisp authored
RASTERIZE_ENABLE is the opposite of GL_RASTERIZER_DISCARD. Implement it naturally using this. NVN games expect rasterize to be enabled by default, reflect that in our initial GPU state.
-
ReinUsesLisp authored
LDG can load single bytes instead of full integers or packs of integers. These have the advantage of loading bytes that are not aligned to 4 bytes. To emulate these this commit gets the byte being referenced (by doing "address & 3" and then using that to extract the byte from the loaded integer: result = bitfieldExtract(loaded_integer, (address % 4) * 8, 8)
-
ReinUsesLisp authored
I2F's byte selector is used to choose what bytes to convert to float. e.g. if the input is 0xaabbccdd and the selector is ".B3" it will convert 0xaa. The default (when it's not shown in nvdisasm) is ".B0", in that example the default would convert 0xdd to float.
-
bunnei authored
delete appveyor config
-
ReinUsesLisp authored
When a image format mismatches we were inserting zeroes to the texture itself. This was not handling cases were the mismatch uses less coordinates than the guest shader code. Address that by resizing the vector.
-
ReinUsesLisp authored
-
ReinUsesLisp authored
-