mirror of
https://github.com/MobileGL-Dev/MobileGlues.git
synced 2025-09-22 10:42:11 -04:00
[Optimization] (multidraw: compute): why bisect still not working???
This commit is contained in:
parent
a0bcd91257
commit
e3c7bab0af
@ -280,11 +280,11 @@ void main() {
|
|||||||
int high = draws.length();
|
int high = draws.length();
|
||||||
while (low < high) {
|
while (low < high) {
|
||||||
int mid = low + (high - low) / 2;
|
int mid = low + (high - low) / 2;
|
||||||
if (prefixSums[mid] <= outIdx) {
|
if (prefixSums[mid] > outIdx) {
|
||||||
low = mid + 1; // next [mid + 1, high)
|
high = mid; // next [low, mid)
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
high = mid; // next [low, mid)
|
low = mid + 1; // next [mid + 1, high)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -294,7 +294,8 @@ void main() {
|
|||||||
uint inIndex = localIdx + cmd.firstIndex;
|
uint inIndex = localIdx + cmd.firstIndex;
|
||||||
|
|
||||||
// Write out
|
// Write out
|
||||||
out_indices[outIdx] = uint(int(in_indices[inIndex]) + cmd.baseVertex);
|
out_indices[outIdx] = uint(in_indices[inIndex] + uint(cmd.baseVertex));
|
||||||
|
// out_indices[outIdx] = uint(cmd.baseVertex);
|
||||||
}
|
}
|
||||||
|
|
||||||
)";
|
)";
|
||||||
|
@ -21,23 +21,23 @@ void main() {
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
// Find out draw call #
|
// Find out draw call #
|
||||||
// int low = 0;
|
// int low = 0;
|
||||||
// int high = draws.length();
|
// int high = draws.length();
|
||||||
// for (low = 0; low < high; ++low) {
|
// for (low = 0; low < high; ++low) {
|
||||||
// if (prefixSums[low] > outIdx) {
|
// if (prefixSums[low] > outIdx) {
|
||||||
// break;
|
// break;
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
|
|
||||||
int low = 0;
|
int low = 0;
|
||||||
int high = draws.length();
|
int high = draws.length();
|
||||||
while (low < high) {
|
while (low < high) {
|
||||||
int mid = low + (high - low) / 2;
|
int mid = low + (high - low) / 2;
|
||||||
if (prefixSums[mid] <= outIdx) {
|
if (prefixSums[mid] > outIdx) {
|
||||||
low = mid + 1; // next [mid + 1, high)
|
high = mid; // next [low, mid)
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
high = mid; // next [low, mid)
|
low = mid + 1; // next [mid + 1, high)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -47,5 +47,6 @@ void main() {
|
|||||||
uint inIndex = localIdx + cmd.firstIndex;
|
uint inIndex = localIdx + cmd.firstIndex;
|
||||||
|
|
||||||
// Write out
|
// Write out
|
||||||
out_indices[outIdx] = uint(int(in_indices[inIndex]) + cmd.baseVertex);
|
out_indices[outIdx] = uint(in_indices[inIndex] + uint(cmd.baseVertex));
|
||||||
|
// out_indices[outIdx] = uint(cmd.baseVertex);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user