rsx: Fixes

- Fix section scanning range for early reject
- Specify IMAGE_ASPECT_STENCIL when uploading image_from_cpu
This commit is contained in:
kd-11 2017-09-21 18:40:47 +03:00
parent dfc564f837
commit d0148728c6
2 changed files with 15 additions and 8 deletions

View File

@ -115,21 +115,20 @@ namespace rsx
void notify(u32 addr, u32 data_size) void notify(u32 addr, u32 data_size)
{ {
verify(HERE), valid_count >= 0; verify(HERE), valid_count >= 0;
max_range = std::max(data_size, max_range);
const u32 addr_base = addr & ~0xfff;
const u32 block_sz = align(addr + data_size, 4096u) - addr_base;
max_range = std::max(max_range, block_sz);
max_addr = std::max(max_addr, addr); max_addr = std::max(max_addr, addr);
min_addr = std::min(min_addr, addr); min_addr = std::min(min_addr, addr_base);
valid_count++; valid_count++;
} }
void add(section_storage_type& section, u32 addr, u32 data_size) void add(section_storage_type& section, u32 addr, u32 data_size)
{ {
verify(HERE), valid_count >= 0;
max_range = std::max(data_size, max_range);
max_addr = std::max(max_addr, addr);
min_addr = std::min(min_addr, addr);
valid_count++;
data.push_back(std::move(section)); data.push_back(std::move(section));
notify(addr, data_size);
} }
void remove_one() void remove_one()

View File

@ -518,6 +518,14 @@ namespace vk
auto image = section->get_raw_texture(); auto image = section->get_raw_texture();
auto subres_range = section->get_raw_view()->info.subresourceRange; auto subres_range = section->get_raw_view()->info.subresourceRange;
switch (image->info.format)
{
case VK_FORMAT_D32_SFLOAT_S8_UINT:
case VK_FORMAT_D24_UNORM_S8_UINT:
subres_range.aspectMask |= VK_IMAGE_ASPECT_STENCIL_BIT;
break;
}
change_image_layout(cmd, image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, subres_range); change_image_layout(cmd, image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, subres_range);
vk::enter_uninterruptible(); vk::enter_uninterruptible();