mirror of
https://github.com/RPCS3/rpcs3.git
synced 2024-09-29 23:41:17 +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
|
// Add a new draw command
|
||||||
void append_draw_command(const draw_range_t& range)
|
void append_draw_command(const draw_range_t& range)
|
||||||
{
|
{
|
||||||
|
current_range_index = draw_command_ranges.size();
|
||||||
draw_command_ranges.push_back(range);
|
draw_command_ranges.push_back(range);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -97,6 +98,7 @@ namespace rsx
|
|||||||
auto range_It = draw_command_ranges.begin();
|
auto range_It = draw_command_ranges.begin();
|
||||||
std::advance(range_It, index);
|
std::advance(range_It, index);
|
||||||
|
|
||||||
|
current_range_index = index;
|
||||||
draw_command_ranges.insert(range_It, range);
|
draw_command_ranges.insert(range_It, range);
|
||||||
|
|
||||||
// Update all barrier draw ids after this one
|
// Update all barrier draw ids after this one
|
||||||
@ -168,6 +170,9 @@ namespace rsx
|
|||||||
*/
|
*/
|
||||||
void compile()
|
void compile()
|
||||||
{
|
{
|
||||||
|
// End draw call append mode
|
||||||
|
current_range_index = ~0u;
|
||||||
|
|
||||||
// TODO
|
// TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -182,7 +187,7 @@ namespace rsx
|
|||||||
|
|
||||||
if (!draw_command_ranges.empty())
|
if (!draw_command_ranges.empty())
|
||||||
{
|
{
|
||||||
auto& last = draw_command_ranges.back();
|
auto& last = draw_command_ranges[current_range_index];
|
||||||
|
|
||||||
if (last.count == 0)
|
if (last.count == 0)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user