mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-06 11:00:11 +01:00
i965: Use bitmask/ffs to iterate used vertex attributes.
Replaces an iterate and test bit in a bitmask loop by a
loop only iterating over the bits set in the bitmask.
v2: Use _mesa_bit_scan{,64} instead of open coding.
v3: Use u_bit_scan{,64} instead of _mesa_bit_scan{,64}.
Reviewed-by: Brian Paul <brianp@vmware.com>
Signed-off-by: Mathias Fröhlich <Mathias.Froehlich@web.de>
This commit is contained in:
parent
b670f0d1d7
commit
53691b7cb1
1 changed files with 5 additions and 5 deletions
|
|
@ -38,6 +38,7 @@
|
|||
#include "swrast/swrast.h"
|
||||
#include "swrast_setup/swrast_setup.h"
|
||||
#include "drivers/common/meta.h"
|
||||
#include "util/bitscan.h"
|
||||
|
||||
#include "brw_blorp.h"
|
||||
#include "brw_draw.h"
|
||||
|
|
@ -301,16 +302,15 @@ brw_merge_inputs(struct brw_context *brw,
|
|||
}
|
||||
|
||||
if (brw->gen < 8 && !brw->is_haswell) {
|
||||
struct gl_program *vp = &ctx->VertexProgram._Current->Base;
|
||||
GLbitfield64 mask = ctx->VertexProgram._Current->Base.InputsRead;
|
||||
/* Prior to Haswell, the hardware can't natively support GL_FIXED or
|
||||
* 2_10_10_10_REV vertex formats. Set appropriate workaround flags.
|
||||
*/
|
||||
for (i = 0; i < VERT_ATTRIB_MAX; i++) {
|
||||
if (!(vp->InputsRead & BITFIELD64_BIT(i)))
|
||||
continue;
|
||||
|
||||
while (mask) {
|
||||
uint8_t wa_flags = 0;
|
||||
|
||||
i = u_bit_scan64(&mask);
|
||||
|
||||
switch (brw->vb.inputs[i].glarray->Type) {
|
||||
|
||||
case GL_FIXED:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue