Merge branch 'upstream-gallium-0.1' into nouveau-gallium-0.1
[mesa.git] / src / mesa / drivers / dri / nouveau_winsys / nouveau_context.c
index 03f1816c32342de2d2231ecff53d39980e04a2d8..01fada5b89b282851e79c247d90343171e479a58 100644 (file)
@@ -1,6 +1,7 @@
 #include "main/glheader.h"
 #include "glapi/glthread.h"
 #include <GL/internal/glcore.h>
+#include "utils.h"
 
 #include "state_tracker/st_public.h"
 #include "pipe/p_defines.h"
 #include "nouveau_screen.h"
 #include "nouveau_winsys_pipe.h"
 
-#define need_GL_ARB_fragment_program
-#define need_GL_ARB_multisample
-#define need_GL_ARB_occlusion_query
-#define need_GL_ARB_point_parameters
-#define need_GL_ARB_texture_compression
-#define need_GL_ARB_vertex_program
-#define need_GL_ARB_vertex_buffer_object
-#define need_GL_EXT_compiled_vertex_array
-#define need_GL_EXT_fog_coord
-#define need_GL_EXT_secondary_color
-#define need_GL_EXT_framebuffer_object
-#include "extension_helper.h"
-
-const struct dri_extension common_extensions[] =
-{
-       { NULL, 0 }
-};
-
-const struct dri_extension nv40_extensions[] =
-{
-       { "GL_ARB_fragment_program", NULL },
-       { "GL_ARB_multisample", GL_ARB_multisample_functions },
-       { "GL_ARB_occlusion_query", GL_ARB_occlusion_query_functions },
-       { "GL_ARB_point_parameters", GL_ARB_point_parameters_functions },
-       { "GL_ARB_texture_border_clamp", NULL },
-       { "GL_ARB_texture_compression", GL_ARB_texture_compression_functions },
-       { "GL_ARB_texture_cube_map", NULL },
-       { "GL_ARB_texture_env_add", NULL },
-       { "GL_ARB_texture_env_combine", NULL },
-       { "GL_ARB_texture_env_crossbar", NULL },
-       { "GL_ARB_texture_env_dot3", NULL },
-       { "GL_ARB_texture_mirrored_repeat", NULL },
-       { "GL_ARB_texture_non_power_of_two", NULL },
-       { "GL_ARB_vertex_program", GL_ARB_vertex_program_functions },
-       { "GL_ARB_vertex_buffer_object", GL_ARB_vertex_buffer_object_functions },
-       { "GL_ATI_texture_env_combine3", NULL },
-       { "GL_EXT_compiled_vertex_array", GL_EXT_compiled_vertex_array_functions },
-       { "GL_EXT_fog_coord", GL_EXT_fog_coord_functions },
-       { "GL_EXT_framebuffer_object", GL_EXT_framebuffer_object_functions },
-       { "GL_EXT_secondary_color", GL_EXT_secondary_color_functions },
-       { "GL_EXT_texture_edge_clamp", NULL },
-       { "GL_EXT_texture_env_add", NULL },
-       { "GL_EXT_texture_env_combine", NULL },
-       { "GL_EXT_texture_env_dot3", NULL },
-       { "GL_EXT_texture_mirror_clamp", NULL },
-       { "GL_NV_texture_rectangle", NULL },
-       { NULL, 0 }
-};
-
 #ifdef DEBUG
 static const struct dri_debug_control debug_control[] = {
        { "bo", DEBUG_BO },
@@ -121,6 +73,7 @@ nouveau_context_create(const __GLcontextModes *glVis,
         */
        {
                struct pipe_surface *fb_surf;
+               struct nouveau_pipe_buffer *fb_buf;
                struct nouveau_bo_priv *fb_bo;
 
                fb_bo = calloc(1, sizeof(struct nouveau_bo_priv));
@@ -135,12 +88,15 @@ nouveau_context_create(const __GLcontextModes *glVis,
                fb_bo->base.size = fb_bo->drm.size;
                fb_bo->base.device = nv_screen->device;
 
+               fb_buf = calloc(1, sizeof(struct nouveau_pipe_buffer));
+               fb_buf->bo = &fb_bo->base;
+
                fb_surf = calloc(1, sizeof(struct pipe_surface));
                fb_surf->cpp = nv_screen->front_cpp;
                fb_surf->pitch = nv_screen->front_pitch / fb_surf->cpp;
                fb_surf->height = nv_screen->front_height;
                fb_surf->refcount = 1;
-               fb_surf->buffer = (void *)fb_bo;
+               fb_surf->buffer = &fb_buf->base;
 
                nv->frontbuffer = fb_surf;
        }