projects
/
mesa.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge commit 'origin/gallium-0.1' into gallium-0.2
[mesa.git]
/
src
/
mesa
/
drivers
/
dri
/
r300
/
radeon_ioctl.c
diff --git
a/src/mesa/drivers/dri/r300/radeon_ioctl.c
b/src/mesa/drivers/dri/r300/radeon_ioctl.c
index 866b1deaa057794a256f194c6a39e45473727c2d..36502eb42de9882c576d65e225974d9b6b107d14 100644
(file)
--- a/
src/mesa/drivers/dri/r300/radeon_ioctl.c
+++ b/
src/mesa/drivers/dri/r300/radeon_ioctl.c
@@
-35,10
+35,10
@@
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include <sched.h>
#include <errno.h>
#include <sched.h>
#include <errno.h>
-#include "glheader.h"
-#include "imports.h"
-#include "macros.h"
-#include "context.h"
+#include "
main/
glheader.h"
+#include "
main/
imports.h"
+#include "ma
in/ma
cros.h"
+#include "
main/
context.h"
#include "swrast/swrast.h"
#include "r300_context.h"
#include "radeon_ioctl.h"
#include "swrast/swrast.h"
#include "r300_context.h"
#include "radeon_ioctl.h"
@@
-164,6
+164,7
@@
void radeonCopyBuffer(__DRIdrawablePrivate * dPriv,
GLint nbox, i, ret;
GLboolean missed_target;
int64_t ust;
GLint nbox, i, ret;
GLboolean missed_target;
int64_t ust;
+ __DRIscreenPrivate *psp = dPriv->driScreenPriv;
assert(dPriv);
assert(dPriv->driContextPriv);
assert(dPriv);
assert(dPriv->driContextPriv);
@@
-214,16
+215,18
@@
void radeonCopyBuffer(__DRIdrawablePrivate * dPriv,
if (rect->y2 < b->y2)
b->y2 = rect->y2;
if (rect->y2 < b->y2)
b->y2 = rect->y2;
- if (b->x1
< b->x2 && b->y1 <
b->y2)
-
b++
;
+ if (b->x1
>= b->x2 || b->y1 >=
b->y2)
+
continue
;
}
}
- else
- b++;
+ b++;
n++;
}
radeon->sarea->nbox = n;
n++;
}
radeon->sarea->nbox = n;
+ if (!n)
+ continue;
+
ret = drmCommandNone(radeon->dri.fd, DRM_RADEON_SWAP);
if (ret) {
ret = drmCommandNone(radeon->dri.fd, DRM_RADEON_SWAP);
if (ret) {
@@
-240,7
+243,7
@@
void radeonCopyBuffer(__DRIdrawablePrivate * dPriv,
((r300ContextPtr)radeon)->hw.all_dirty = GL_TRUE;
radeon->swap_count++;
((r300ContextPtr)radeon)->hw.all_dirty = GL_TRUE;
radeon->swap_count++;
- (*
dri_interfac
e->getUST) (&ust);
+ (*
psp->systemTim
e->getUST) (&ust);
if (missed_target) {
radeon->swap_missed_count++;
radeon->swap_missed_ust = ust - radeon->swap_ust;
if (missed_target) {
radeon->swap_missed_count++;
radeon->swap_missed_ust = ust - radeon->swap_ust;
@@
-257,6
+260,7
@@
void radeonPageFlip(__DRIdrawablePrivate * dPriv)
radeonContextPtr radeon;
GLint ret;
GLboolean missed_target;
radeonContextPtr radeon;
GLint ret;
GLboolean missed_target;
+ __DRIscreenPrivate *psp = dPriv->driScreenPriv;
assert(dPriv);
assert(dPriv->driContextPriv);
assert(dPriv);
assert(dPriv->driContextPriv);
@@
-295,7
+299,7
@@
void radeonPageFlip(__DRIdrawablePrivate * dPriv)
driWaitForVBlank(dPriv, &missed_target);
if (missed_target) {
radeon->swap_missed_count++;
driWaitForVBlank(dPriv, &missed_target);
if (missed_target) {
radeon->swap_missed_count++;
- (void)(*
dri_interfac
e->getUST) (&radeon->swap_missed_ust);
+ (void)(*
psp->systemTim
e->getUST) (&radeon->swap_missed_ust);
}
LOCK_HARDWARE(radeon);
}
LOCK_HARDWARE(radeon);
@@
-309,7
+313,7
@@
void radeonPageFlip(__DRIdrawablePrivate * dPriv)
}
radeon->swap_count++;
}
radeon->swap_count++;
- (void)(*
dri_interfac
e->getUST) (&radeon->swap_ust);
+ (void)(*
psp->systemTim
e->getUST) (&radeon->swap_ust);
driFlipRenderbuffers(radeon->glCtx->WinSysDrawBuffer,
radeon->sarea->pfCurrentPage);
driFlipRenderbuffers(radeon->glCtx->WinSysDrawBuffer,
radeon->sarea->pfCurrentPage);