diff options
Diffstat (limited to 'src/mesa')
| -rw-r--r-- | src/mesa/drivers/dri/r300/r300_context.c | 3 | ||||
| -rw-r--r-- | src/mesa/drivers/dri/r300/r300_render.c | 16 | ||||
| -rw-r--r-- | src/mesa/drivers/dri/r300/r300_render.h | 1 | ||||
| -rw-r--r-- | src/mesa/drivers/dri/radeon/radeon_chipset.h | 3 | ||||
| -rw-r--r-- | src/mesa/drivers/dri/radeon/radeon_screen.c | 3 | 
5 files changed, 24 insertions, 2 deletions
| diff --git a/src/mesa/drivers/dri/r300/r300_context.c b/src/mesa/drivers/dri/r300/r300_context.c index cfeb5407e9..4dce454c3a 100644 --- a/src/mesa/drivers/dri/r300/r300_context.c +++ b/src/mesa/drivers/dri/r300/r300_context.c @@ -61,6 +61,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  #include "r300_state.h"  #include "r300_tex.h"  #include "r300_emit.h" +#include "r300_render.h"  #include "r300_swtcl.h"  #include "radeon_bocs_wrapper.h"  #include "radeon_buffer_objects.h" @@ -226,6 +227,8 @@ static void r300_fallback(GLcontext *ctx, GLuint bit, GLboolean mode)  		r300->radeon.Fallback |= bit;  	else  		r300->radeon.Fallback &= ~bit; + +	r300SwitchFallback(ctx, R300_FALLBACK_RADEON_COMMON, mode);  }  static void r300_emit_query_finish(radeonContextPtr radeon) diff --git a/src/mesa/drivers/dri/r300/r300_render.c b/src/mesa/drivers/dri/r300/r300_render.c index 9596131486..bb8f91491f 100644 --- a/src/mesa/drivers/dri/r300/r300_render.c +++ b/src/mesa/drivers/dri/r300/r300_render.c @@ -386,6 +386,14 @@ void r300RunRenderPrimitive(GLcontext * ctx, int start, int end, int prim)  			WARN_ONCE("Fixme: can't handle spliting prim %d\n", prim);  			return;  		} + +		if (rmesa->radeon.radeonScreen->kernel_mm) { +			BEGIN_BATCH_NO_AUTOSTATE(2); +			OUT_BATCH_REGSEQ(R300_VAP_VF_MAX_VTX_INDX, 1); +			OUT_BATCH(rmesa->radeon.tcl.aos[0].count); +			END_BATCH(); +		} +  		r300_emit_scissor(rmesa->radeon.glCtx);  		while (num_verts > 0) {  			int nr; @@ -400,8 +408,9 @@ void r300RunRenderPrimitive(GLcontext * ctx, int start, int end, int prim)  	COMMIT_BATCH();  } -static const char *getFallbackString(uint32_t bit) +static const char *getFallbackString(r300ContextPtr rmesa, uint32_t bit)  { +	static char common_fallback_str[32];  	switch (bit) {  		case R300_FALLBACK_VERTEX_PROGRAM :  			return "vertex program"; @@ -421,6 +430,9 @@ static const char *getFallbackString(uint32_t bit)  			return "render mode != GL_RENDER";  		case R300_FALLBACK_FRAGMENT_PROGRAM:  			return "fragment program"; +		case R300_FALLBACK_RADEON_COMMON: +			snprintf(common_fallback_str, 32, "radeon common 0x%08x", rmesa->radeon.Fallback); +			return common_fallback_str;  		case R300_FALLBACK_AOS_LIMIT:  			return "aos limit";  		case R300_FALLBACK_INVALID_BUFFERS: @@ -440,7 +452,7 @@ void r300SwitchFallback(GLcontext *ctx, uint32_t bit, GLboolean mode)  	if (mode) {  		if ((fallback_warn & bit) == 0) {  			if (RADEON_DEBUG & RADEON_FALLBACKS) -				fprintf(stderr, "WARNING! Falling back to software for %s\n", getFallbackString(bit)); +				fprintf(stderr, "WARNING! Falling back to software for %s\n", getFallbackString(rmesa, bit));  			fallback_warn |= bit;  		}  		rmesa->fallback |= bit; diff --git a/src/mesa/drivers/dri/r300/r300_render.h b/src/mesa/drivers/dri/r300/r300_render.h index ec785474a6..581e9fa0cc 100644 --- a/src/mesa/drivers/dri/r300/r300_render.h +++ b/src/mesa/drivers/dri/r300/r300_render.h @@ -41,6 +41,7 @@  #define R300_FALLBACK_STENCIL_TWOSIDE   (1 << 21)  #define R300_FALLBACK_RENDER_MODE       (1 << 22)  #define R300_FALLBACK_FRAGMENT_PROGRAM  (1 << 23) +#define R300_FALLBACK_RADEON_COMMON     (1 << 29)  #define R300_FALLBACK_AOS_LIMIT         (1 << 30)  #define R300_FALLBACK_INVALID_BUFFERS   (1 << 31)  #define R300_RASTER_FALLBACK_MASK        0xffff0000 diff --git a/src/mesa/drivers/dri/radeon/radeon_chipset.h b/src/mesa/drivers/dri/radeon/radeon_chipset.h index f17a305bce..98732c810c 100644 --- a/src/mesa/drivers/dri/radeon/radeon_chipset.h +++ b/src/mesa/drivers/dri/radeon/radeon_chipset.h @@ -357,6 +357,7 @@  #define PCI_CHIP_RV770_9456             0x9456  #define PCI_CHIP_RV770_945A             0x945A  #define PCI_CHIP_RV770_945B             0x945B +#define PCI_CHIP_RV770_945E             0x945E  #define PCI_CHIP_RV790_9460             0x9460  #define PCI_CHIP_RV790_9462             0x9462  #define PCI_CHIP_RV770_946A             0x946A @@ -368,6 +369,7 @@  #define PCI_CHIP_RV730_9487             0x9487  #define PCI_CHIP_RV730_9488             0x9488  #define PCI_CHIP_RV730_9489             0x9489 +#define PCI_CHIP_RV730_948A             0x948A  #define PCI_CHIP_RV730_948F             0x948F  #define PCI_CHIP_RV730_9490             0x9490  #define PCI_CHIP_RV730_9491             0x9491 @@ -386,6 +388,7 @@  #define PCI_CHIP_RV710_9553             0x9553  #define PCI_CHIP_RV710_9555             0x9555  #define PCI_CHIP_RV710_9557             0x9557 +#define PCI_CHIP_RV710_955F             0x955F  #define PCI_CHIP_RV740_94A0             0x94A0  #define PCI_CHIP_RV740_94A1             0x94A1 diff --git a/src/mesa/drivers/dri/radeon/radeon_screen.c b/src/mesa/drivers/dri/radeon/radeon_screen.c index 6415ec1239..4d7255f47e 100644 --- a/src/mesa/drivers/dri/radeon/radeon_screen.c +++ b/src/mesa/drivers/dri/radeon/radeon_screen.c @@ -846,6 +846,7 @@ static int radeon_set_screen_flags(radeonScreenPtr screen, int device_id)     case PCI_CHIP_RV770_9456:     case PCI_CHIP_RV770_945A:     case PCI_CHIP_RV770_945B: +   case PCI_CHIP_RV770_945E:     case PCI_CHIP_RV790_9460:     case PCI_CHIP_RV790_9462:     case PCI_CHIP_RV770_946A: @@ -860,6 +861,7 @@ static int radeon_set_screen_flags(radeonScreenPtr screen, int device_id)     case PCI_CHIP_RV730_9487:     case PCI_CHIP_RV730_9488:     case PCI_CHIP_RV730_9489: +   case PCI_CHIP_RV730_948A:     case PCI_CHIP_RV730_948F:     case PCI_CHIP_RV730_9490:     case PCI_CHIP_RV730_9491: @@ -881,6 +883,7 @@ static int radeon_set_screen_flags(radeonScreenPtr screen, int device_id)     case PCI_CHIP_RV710_9553:     case PCI_CHIP_RV710_9555:     case PCI_CHIP_RV710_9557: +   case PCI_CHIP_RV710_955F:        screen->chip_family = CHIP_FAMILY_RV710;        screen->chip_flags = RADEON_CHIPSET_TCL;        break; | 
