mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-10 08:51:28 +12:00
rsx: Minor fixes
- vk: Clear dirty textures before copying 'old contents' in case the old data does not fill the new region - rsx: Properly decode border color - seems to be in BGRA format - vk: better approximation of border color to better choose between the presets - vk: Individually clear color images outside render pass and without scissor - vk: Fix renderpass selection for clear overlay pass - vk: Include scissor region when emulating clear mask NOTES: - vk: Completely avoid using vkClearXXXXimage - its 'broken' on nvidia drivers Spec is vague about the function so its not an actual bug ClearAttachment is clearly defined as bypassing bound state which works correctly - TODO: Implement memory sampling to simulate loading precleared memory if cell used memset to preinitialize the framebuffer Autoclear depth to 1|255 and color to 0 is hacky!
This commit is contained in:
parent
da99f3cb9a
commit
91a6091d26
10 changed files with 128 additions and 110 deletions
|
@ -206,13 +206,12 @@ namespace gl
|
|||
//Apply sampler state settings
|
||||
void sampler_state::apply(rsx::fragment_texture& tex, const rsx::sampled_image_descriptor_base* sampled_image)
|
||||
{
|
||||
const f32 border_color = (f32)tex.border_color() / 255;
|
||||
const f32 border_color_array[] = { border_color, border_color, border_color, border_color };
|
||||
const color4f border_color = rsx::decode_border_color(tex.border_color());
|
||||
|
||||
glSamplerParameteri(samplerHandle, GL_TEXTURE_WRAP_S, wrap_mode(tex.wrap_s()));
|
||||
glSamplerParameteri(samplerHandle, GL_TEXTURE_WRAP_T, wrap_mode(tex.wrap_t()));
|
||||
glSamplerParameteri(samplerHandle, GL_TEXTURE_WRAP_R, wrap_mode(tex.wrap_r()));
|
||||
glSamplerParameterfv(samplerHandle, GL_TEXTURE_BORDER_COLOR, border_color_array);
|
||||
glSamplerParameterfv(samplerHandle, GL_TEXTURE_BORDER_COLOR, border_color.rgba);
|
||||
|
||||
if (sampled_image->upload_context != rsx::texture_upload_context::shader_read ||
|
||||
tex.get_exact_mipmap_count() <= 1)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue