summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/mesa/state_tracker/st_cb_strings.c14
-rw-r--r--src/mesa/state_tracker/st_context.h3
2 files changed, 9 insertions, 8 deletions
diff --git a/src/mesa/state_tracker/st_cb_strings.c b/src/mesa/state_tracker/st_cb_strings.c
index ac1a8b14224..776f518e2bb 100644
--- a/src/mesa/state_tracker/st_cb_strings.c
+++ b/src/mesa/state_tracker/st_cb_strings.c
@@ -46,8 +46,6 @@ st_get_string(GLcontext * ctx, GLenum name)
{
struct st_context *st = st_context(ctx);
struct pipe_context *pipe = st->pipe;
- static char buffer[128];
-
switch (name) {
case GL_VENDOR: {
@@ -59,20 +57,20 @@ st_get_string(GLcontext * ctx, GLenum name)
* additional string allows "and XyzCorp" to reflect this.
*/
if (vendor && strcmp(vendor, tungsten) != 0)
- snprintf(buffer, sizeof(buffer), "%s and %s", tungsten, vendor);
+ snprintf(st->vendor, sizeof(st->vendor),
+ "%s and %s", tungsten, vendor);
else
- snprintf(buffer, sizeof(buffer), "%s", tungsten);
+ snprintf(st->vendor, sizeof(st->vendor), "%s", tungsten);
- return (GLubyte *) buffer;
- break;
+ return (GLubyte *) st->vendor;
}
case GL_RENDERER:
- snprintf(buffer, sizeof(buffer), "TG3D, %s on %s",
+ snprintf(st->renderer, sizeof(st->renderer), "TG3D, %s on %s",
pipe->get_name( pipe ),
pipe->winsys->get_name( pipe->winsys ));
- return (GLubyte *) buffer;
+ return (GLubyte *) st->renderer;
default:
return NULL;
diff --git a/src/mesa/state_tracker/st_context.h b/src/mesa/state_tracker/st_context.h
index 38d6a3ed86e..13ea28237c9 100644
--- a/src/mesa/state_tracker/st_context.h
+++ b/src/mesa/state_tracker/st_context.h
@@ -97,6 +97,9 @@ struct st_context
GLuint frontbuffer_dirty:1;
} flags;
+ char vendor[100];
+ char renderer[100];
+
/* State to be validated:
*/
struct st_tracked_state **atoms;