[Mesa-dev] [PATCH 06/20] vbo: decrease the size of vbo_context slightly
Marek Olšák
maraeo at gmail.com
Tue Nov 21 18:01:48 UTC 2017
From: Marek Olšák <marek.olsak at amd.com>
vbo_context: 21520 -> 20344 bytes
---
src/mesa/main/mtypes.h | 8 ++++----
src/mesa/vbo/vbo_context.h | 4 ++--
src/mesa/vbo/vbo_exec_draw.c | 2 +-
src/mesa/vbo/vbo_save_draw.c | 2 +-
4 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index 67711d8..660b1a5 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -1452,31 +1452,31 @@ struct gl_pixelstore_attrib
};
/**
* Vertex array information which is derived from gl_array_attributes
* and gl_vertex_buffer_binding information. Used by the VBO module and
* device drivers.
*/
struct gl_vertex_array
{
- GLint Size; /**< components per element (1,2,3,4) */
GLenum16 Type; /**< datatype: GL_FLOAT, GL_INT, etc */
GLenum16 Format; /**< default: GL_RGBA, but may be GL_BGRA */
- GLsizei StrideB; /**< actual stride in bytes */
- GLuint _ElementSize; /**< size of each element in bytes */
- const GLubyte *Ptr; /**< Points to array data */
+ GLshort StrideB; /**< actual stride in bytes */
+ GLubyte Size; /**< components per element (1,2,3,4) */
+ GLubyte _ElementSize; /**< size of each element in bytes */
GLboolean Normalized; /**< GL_ARB_vertex_program */
GLboolean Integer; /**< Integer-valued? */
GLboolean Doubles; /**< double precision values are not converted to floats */
GLuint InstanceDivisor; /**< GL_ARB_instanced_arrays */
+ const GLubyte *Ptr; /**< Points to array data */
struct gl_buffer_object *BufferObj;/**< GL_ARB_vertex_buffer_object */
};
/**
* Attributes to describe a vertex array.
*
* Contains the size, type, format and normalization flag,
* along with the index of a vertex buffer binding point.
*
diff --git a/src/mesa/vbo/vbo_context.h b/src/mesa/vbo/vbo_context.h
index 70757d0..04079b7 100644
--- a/src/mesa/vbo/vbo_context.h
+++ b/src/mesa/vbo/vbo_context.h
@@ -60,22 +60,22 @@
#include "main/macros.h"
#ifdef __cplusplus
extern "C" {
#endif
struct vbo_context {
struct gl_vertex_array currval[VBO_ATTRIB_MAX];
/** Map VERT_ATTRIB_x to VBO_ATTRIB_y */
- GLuint map_vp_none[VERT_ATTRIB_MAX];
- GLuint map_vp_arb[VERT_ATTRIB_MAX];
+ GLubyte map_vp_none[VERT_ATTRIB_MAX];
+ GLubyte map_vp_arb[VERT_ATTRIB_MAX];
struct vbo_exec_context exec;
struct vbo_save_context save;
/* Callback into the driver. This must always succeed, the driver
* is responsible for initiating any fallback actions required:
*/
vbo_draw_func draw_prims;
/* Optional callback for indirect draws. This allows multidraws to not be
diff --git a/src/mesa/vbo/vbo_exec_draw.c b/src/mesa/vbo/vbo_exec_draw.c
index df34f05..f34b591 100644
--- a/src/mesa/vbo/vbo_exec_draw.c
+++ b/src/mesa/vbo/vbo_exec_draw.c
@@ -168,21 +168,21 @@ vbo_copy_vertices( struct vbo_exec_context *exec )
/* TODO: populate these as the vertex is defined:
*/
static void
vbo_exec_bind_arrays( struct gl_context *ctx )
{
struct vbo_context *vbo = vbo_context(ctx);
struct vbo_exec_context *exec = &vbo->exec;
struct gl_vertex_array *arrays = exec->vtx.arrays;
- const GLuint *map;
+ const GLubyte *map;
GLuint attr;
GLbitfield64 varying_inputs = 0x0;
bool swap_pos = false;
/* Install the default (ie Current) attributes first, then overlay
* all active ones.
*/
switch (get_program_mode(exec->ctx)) {
case VP_NONE:
for (attr = 0; attr < VERT_ATTRIB_FF_MAX; attr++) {
diff --git a/src/mesa/vbo/vbo_save_draw.c b/src/mesa/vbo/vbo_save_draw.c
index 3fad4c7..02920c9 100644
--- a/src/mesa/vbo/vbo_save_draw.c
+++ b/src/mesa/vbo/vbo_save_draw.c
@@ -130,21 +130,21 @@ _playback_copy_to_current(struct gl_context *ctx,
* Treat the vertex storage as a VBO, define vertex arrays pointing
* into it:
*/
static void vbo_bind_vertex_list(struct gl_context *ctx,
const struct vbo_save_vertex_list *node)
{
struct vbo_context *vbo = vbo_context(ctx);
struct vbo_save_context *save = &vbo->save;
struct gl_vertex_array *arrays = save->arrays;
GLuint buffer_offset = node->buffer_offset;
- const GLuint *map;
+ const GLubyte *map;
GLuint attr;
GLubyte node_attrsz[VBO_ATTRIB_MAX]; /* copy of node->attrsz[] */
GLenum16 node_attrtype[VBO_ATTRIB_MAX]; /* copy of node->attrtype[] */
GLbitfield64 varying_inputs = 0x0;
memcpy(node_attrsz, node->attrsz, sizeof(node->attrsz));
memcpy(node_attrtype, node->attrtype, sizeof(node->attrtype));
/* Install the default (ie Current) attributes first, then overlay
* all active ones.
--
2.7.4
More information about the mesa-dev
mailing list