mirror of
https://github.com/RPCS3/rpcs3.git
synced 2024-11-17 17:11:23 +00:00
rsx: Fix draw count append when draw ranges are out of order
- It is common for draw counts to truncate at 256 even when it makes no sense to do so. - e.g 256 is not a multiple of 3 so triangles will glitch out
This commit is contained in:
parent
58e2465369
commit
182b20c33d
@ -88,6 +88,7 @@ namespace rsx
|
||||
// Add a new draw command
|
||||
void append_draw_command(const draw_range_t& range)
|
||||
{
|
||||
current_range_index = draw_command_ranges.size();
|
||||
draw_command_ranges.push_back(range);
|
||||
}
|
||||
|
||||
@ -97,6 +98,7 @@ namespace rsx
|
||||
auto range_It = draw_command_ranges.begin();
|
||||
std::advance(range_It, index);
|
||||
|
||||
current_range_index = index;
|
||||
draw_command_ranges.insert(range_It, range);
|
||||
|
||||
// Update all barrier draw ids after this one
|
||||
@ -168,6 +170,9 @@ namespace rsx
|
||||
*/
|
||||
void compile()
|
||||
{
|
||||
// End draw call append mode
|
||||
current_range_index = ~0u;
|
||||
|
||||
// TODO
|
||||
}
|
||||
|
||||
@ -182,7 +187,7 @@ namespace rsx
|
||||
|
||||
if (!draw_command_ranges.empty())
|
||||
{
|
||||
auto& last = draw_command_ranges.back();
|
||||
auto& last = draw_command_ranges[current_range_index];
|
||||
|
||||
if (last.count == 0)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user