aboutsummaryrefslogtreecommitdiffstats
path: root/src/mesa/state_tracker
diff options
context:
space:
mode:
authorCharmaine Lee <[email protected]>2018-04-26 09:21:52 -0700
committerCharmaine Lee <[email protected]>2018-04-26 10:29:02 -0700
commit8aef7fccb70d64f7764a5d6346ee142417fa0b2c (patch)
tree344c1bced9f67dc7afc0311269838cf705ff4352 /src/mesa/state_tracker
parente923e8151dc5f69174012ff15cdb53cb134b5785 (diff)
st/mesa: fix missing setting of _ElementSize in new_draw_rasterpos_stage
With this patch, _ElementSize is initialized along with the rest of the vertex array attributes in new_draw_rasterpos_stage(). This fixes a crash in st_pipe_vertex_format() when running topogun-1.06-orc-84k-resize trace file with VMware svga driver. Reviewed-by: Brian Paul <[email protected]>
Diffstat (limited to 'src/mesa/state_tracker')
-rw-r--r--src/mesa/state_tracker/st_cb_rasterpos.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/mesa/state_tracker/st_cb_rasterpos.c b/src/mesa/state_tracker/st_cb_rasterpos.c
index 4e5417baada..b73d543653f 100644
--- a/src/mesa/state_tracker/st_cb_rasterpos.c
+++ b/src/mesa/state_tracker/st_cb_rasterpos.c
@@ -40,6 +40,7 @@
#include "main/macros.h"
#include "main/feedback.h"
#include "main/rastpos.h"
+#include "glformats.h"
#include "st_context.h"
#include "st_atom.h"
@@ -182,6 +183,7 @@ new_draw_rastpos_stage(struct gl_context *ctx, struct draw_context *draw)
{
struct rastpos_stage *rs = ST_CALLOC_STRUCT(rastpos_stage);
GLuint i;
+ GLuint elementSize;
rs->stage.draw = draw;
rs->stage.next = NULL;
@@ -196,12 +198,15 @@ new_draw_rastpos_stage(struct gl_context *ctx, struct draw_context *draw)
rs->binding.Stride = 0;
rs->binding.BufferObj = NULL;
+
+ elementSize = _mesa_bytes_per_vertex_attrib(4, GL_FLOAT);
for (i = 0; i < ARRAY_SIZE(rs->array); i++) {
rs->attrib[i].Size = 4;
rs->attrib[i].Type = GL_FLOAT;
rs->attrib[i].Format = GL_RGBA;
rs->attrib[i].Ptr = (GLubyte *) ctx->Current.Attrib[i];
rs->attrib[i].Normalized = GL_TRUE;
+ rs->attrib[i]._ElementSize = elementSize;
rs->array[i].BufferBinding = &rs->binding;
rs->array[i].VertexAttrib = &rs->attrib[i];
}