On Apr 3, 2017 4:04 PM, "Brian Paul" <brian.e.p...@gmail.com> wrote:
I need to test this series on Windows and with MinGW first. I'm worried about enums with bitfields. Hopefully it'll work. Enums without bitfields always occupy 4 bytes. If bitfields don't work with those, we'll have to stop using enums in these cases. Marek -Brian On Mon, Apr 3, 2017 at 2:46 AM, Nicolai Hähnle <nhaeh...@gmail.com> wrote: > Some of these are a bit subtle, but I think they're fine. Series is: > > Reviewed-by: Nicolai Hähnle <nicolai.haeh...@amd.com> > > > On 02.04.2017 20:00, Marek Olšák wrote: > >> From: Marek Olšák <marek.ol...@amd.com> >> >> --- >> src/gallium/auxiliary/indices/u_primconvert.c | 10 ++++++++-- >> src/gallium/include/pipe/p_state.h | 2 +- >> 2 files changed, 9 insertions(+), 3 deletions(-) >> >> diff --git a/src/gallium/auxiliary/indices/u_primconvert.c >> b/src/gallium/auxiliary/indices/u_primconvert.c >> index 2bdfade..1ffca4b 100644 >> --- a/src/gallium/auxiliary/indices/u_primconvert.c >> +++ b/src/gallium/auxiliary/indices/u_primconvert.c >> @@ -121,39 +121,45 @@ util_primconvert_draw_vbo(struct >> primconvert_context *pc, >> util_draw_init_info(&new_info); >> new_info.indexed = true; >> new_info.min_index = info->min_index; >> new_info.max_index = info->max_index; >> new_info.index_bias = info->index_bias; >> new_info.start_instance = info->start_instance; >> new_info.instance_count = info->instance_count; >> new_info.primitive_restart = info->primitive_restart; >> new_info.restart_index = info->restart_index; >> if (info->indexed) { >> + enum pipe_prim_type mode = 0; >> + >> u_index_translator(pc->primtypes_mask, >> info->mode, pc->saved_ib.index_size, >> info->count, >> pc->api_pv, pc->api_pv, >> info->primitive_restart ? PR_ENABLE : >> PR_DISABLE, >> - &new_info.mode, &new_ib.index_size, >> &new_info.count, >> + &mode, &new_ib.index_size, &new_info.count, >> &trans_func); >> + new_info.mode = mode; >> src = ib->user_buffer; >> if (!src) { >> src = pipe_buffer_map(pc->pipe, ib->buffer, >> PIPE_TRANSFER_READ, &src_transfer); >> } >> src = (const uint8_t *)src + ib->offset; >> } >> else { >> + enum pipe_prim_type mode = 0; >> + >> u_index_generator(pc->primtypes_mask, >> info->mode, info->start, info->count, >> pc->api_pv, pc->api_pv, >> - &new_info.mode, &new_ib.index_size, >> &new_info.count, >> + &mode, &new_ib.index_size, &new_info.count, >> &gen_func); >> + new_info.mode = mode; >> } >> >> u_upload_alloc(pc->pipe->stream_uploader, 0, new_ib.index_size * >> new_info.count, 4, >> &new_ib.offset, &new_ib.buffer, &dst); >> >> if (info->indexed) { >> trans_func(src, info->start, info->count, new_info.count, >> info->restart_index, dst); >> } >> else { >> gen_func(info->start, new_info.count, dst); >> diff --git a/src/gallium/include/pipe/p_state.h >> b/src/gallium/include/pipe/p_state.h >> index d68a4d4..eeabf8b 100644 >> --- a/src/gallium/include/pipe/p_state.h >> +++ b/src/gallium/include/pipe/p_state.h >> @@ -634,21 +634,21 @@ struct pipe_index_buffer >> const void *user_buffer; /**< pointer to a user buffer if buffer == >> NULL */ >> }; >> >> >> /** >> * Information to describe a draw_vbo call. >> */ >> struct pipe_draw_info >> { >> boolean indexed; /**< use index buffer */ >> - enum pipe_prim_type mode; /**< the mode of the primitive */ >> + enum pipe_prim_type mode:8; /**< the mode of the primitive */ >> boolean primitive_restart; >> ubyte vertices_per_patch; /**< the number of vertices per patch */ >> >> unsigned start; /**< the index of the first vertex */ >> unsigned count; /**< number of vertices */ >> >> unsigned start_instance; /**< first instance id */ >> unsigned instance_count; /**< number of instances */ >> >> unsigned drawid; /**< id of this draw in a multidraw */ >> >> > > -- > Lerne, wie die Welt wirklich ist, > Aber vergiss niemals, wie sie sein sollte. > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev