rsx: Implement render-to-cubemap; Also simplify unnormalized samplers [WIP, DELETE SHADER CACHE, VERY SLOW]

- Enables real-time cubemap reflections
- TODO: Vulkan is broke; rsx is very slow with this feature
This commit is contained in:
kd-11 2017-11-02 21:54:19 +03:00
parent fbb7186e66
commit 1fa18757fc
10 changed files with 185 additions and 49 deletions

View file

@ -1353,8 +1353,8 @@ namespace rsx
for (u32 i = 0; i < rsx::limits::fragment_textures_count; ++i)
{
auto &tex = rsx::method_registers.fragment_textures[i];
result.texture_scale[i][0] = 1.f;
result.texture_scale[i][1] = 1.f;
result.texture_scale[i][0] = sampler_descriptors[i]->scale_x;
result.texture_scale[i][1] = sampler_descriptors[i]->scale_y;
result.textures_alpha_kill[i] = 0;
result.textures_zfunc[i] = 0;
@ -1383,18 +1383,6 @@ namespace rsx
if (raw_format & CELL_GCM_TEXTURE_UN)
result.unnormalized_coords |= (1 << i);
if (sampler_descriptors[i]->upload_context == rsx::texture_upload_context::framebuffer_storage &&
raw_format & CELL_GCM_TEXTURE_UN)
{
result.texture_scale[i][0] = (resolution_scale * sampler_descriptors[i]->scale_x);
result.texture_scale[i][1] = (resolution_scale * sampler_descriptors[i]->scale_y);
}
else
{
result.texture_scale[i][0] = sampler_descriptors[i]->scale_x;
result.texture_scale[i][1] = sampler_descriptors[i]->scale_y;
}
if (sampler_descriptors[i]->is_depth_texture)
{
const u32 format = raw_format & ~(CELL_GCM_TEXTURE_LN | CELL_GCM_TEXTURE_UN);