mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 05:18:08 +02:00
r300: respect radeon common code fallbacks
Fixes progs/demos/shadowtex under KMS
This commit is contained in:
parent
6a5518861e
commit
2657325c4a
3 changed files with 10 additions and 2 deletions
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -408,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";
|
||||
|
|
@ -429,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:
|
||||
|
|
@ -448,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;
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue