Pass pci_id to i915_create()

This commit is contained in:
Keith Whitwell 2007-08-10 10:01:15 +01:00
parent cb2d95ba68
commit c12b71ef93
3 changed files with 43 additions and 7 deletions

View file

@ -33,6 +33,14 @@
#include "pipe/draw/draw_context.h"
#include "pipe/p_defines.h"
#define PCI_CHIP_I915_G 0x2582
#define PCI_CHIP_I915_GM 0x2592
#define PCI_CHIP_I945_G 0x2772
#define PCI_CHIP_I945_GM 0x27A2
#define PCI_CHIP_I945_GME 0x27AE
#define PCI_CHIP_G33_G 0x29C2
#define PCI_CHIP_Q35_G 0x29B2
#define PCI_CHIP_Q33_G 0x29D2
/**
@ -143,14 +151,40 @@ i915_draw_vertices(struct pipe_context *pipe,
struct pipe_context *i915_create( struct i915_winsys *winsys )
struct pipe_context *i915_create( struct i915_winsys *winsys,
unsigned pci_id )
{
struct i915_context *i915 = CALLOC_STRUCT(i915_context);
struct i915_context *i915;
unsigned is_i945 = 0;
/* TODO: Push this down into the pipe driver:
*/
switch (pci_id) {
case PCI_CHIP_I915_G:
case PCI_CHIP_I915_GM:
break;
case PCI_CHIP_I945_G:
case PCI_CHIP_I945_GM:
case PCI_CHIP_I945_GME:
case PCI_CHIP_G33_G:
case PCI_CHIP_Q33_G:
case PCI_CHIP_Q35_G:
is_i945 = 1;
break;
default:
winsys->printf(winsys, "%s: unknown pci id 0x%x, cannot create context\n",
__FUNCTION__, pci_id);
return NULL;
}
i915 = CALLOC_STRUCT(i915_context);
if (i915 == NULL)
return NULL;
i915->pipe.destroy = i915_destroy;
i915->pipe.supported_formats = i915_supported_formats;
i915->pipe.draw_vb = i915_draw_vb;
i915->pipe.draw_vertices = i915_draw_vertices;
i915->pipe.clear = i915_clear;

View file

@ -122,8 +122,9 @@ struct i915_context
GLuint debug;
struct pipe_scissor_state cliprect;
struct {
unsigned is_i945:1;
} flags;
};
/* A flag for each state_tracker state object:

View file

@ -123,7 +123,8 @@ struct i915_winsys {
#define I915_BUFFER_ACCESS_READ 0x2
struct pipe_context *i915_create( struct i915_winsys * );
struct pipe_context *i915_create( struct i915_winsys *,
unsigned pci_id );
#endif