r300: clear not_flushed OQ list after flush
This commit is contained in:
@@ -44,6 +44,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#include "main/imports.h"
|
||||
#include "main/macros.h"
|
||||
#include "main/context.h"
|
||||
#include "main/simple_list.h"
|
||||
#include "swrast/swrast.h"
|
||||
|
||||
#include "radeon_common.h"
|
||||
@@ -56,6 +57,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#include "radeon_reg.h"
|
||||
#include "r300_emit.h"
|
||||
#include "r300_context.h"
|
||||
#include "r300_queryobj.h"
|
||||
|
||||
#include "vblank.h"
|
||||
|
||||
@@ -753,10 +755,19 @@ static void r300Clear(GLcontext * ctx, GLbitfield mask)
|
||||
}
|
||||
}
|
||||
|
||||
static void r300Flush(GLcontext *ctx)
|
||||
{
|
||||
r300ContextPtr r300 = R300_CONTEXT(ctx);
|
||||
|
||||
radeonFlush(ctx);
|
||||
|
||||
make_empty_list(&r300->query.not_flushed_head);
|
||||
}
|
||||
|
||||
|
||||
void r300InitIoctlFuncs(struct dd_function_table *functions)
|
||||
{
|
||||
functions->Clear = r300Clear;
|
||||
functions->Finish = radeonFinish;
|
||||
functions->Flush = radeonFlush;
|
||||
functions->Flush = r300Flush;
|
||||
}
|
||||
|
||||
@@ -181,7 +181,7 @@ radeonMapBuffer(GLcontext * ctx,
|
||||
struct radeon_buffer_object *radeon_obj = get_radeon_buffer_object(obj);
|
||||
|
||||
if (access == GL_WRITE_ONLY_ARB) {
|
||||
radeonFlush(ctx);
|
||||
ctx->Driver.Flush(ctx);
|
||||
}
|
||||
|
||||
if (radeon_obj->bo == NULL) {
|
||||
|
||||
@@ -880,7 +880,7 @@ void radeon_viewport(GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei he
|
||||
|
||||
if (!radeon->meta.internal_viewport_call && ctx->DrawBuffer->Name == 0) {
|
||||
if (radeon->is_front_buffer_rendering) {
|
||||
radeonFlush(ctx);
|
||||
ctx->Driver.Flush(ctx);
|
||||
}
|
||||
radeon_update_renderbuffers(driContext, driContext->driDrawablePriv);
|
||||
if (driContext->driDrawablePriv != driContext->driReadablePriv)
|
||||
@@ -1211,7 +1211,7 @@ void rcommonInitCmdBuf(radeonContextPtr rmesa)
|
||||
rmesa->cmdbuf.size = size;
|
||||
|
||||
radeon_cs_space_set_flush(rmesa->cmdbuf.cs,
|
||||
(void (*)(void *))radeonFlush, rmesa->glCtx);
|
||||
(void (*)(void *))rmesa->glCtx->Driver.Flush, rmesa->glCtx);
|
||||
|
||||
if (!rmesa->radeonScreen->kernel_mm) {
|
||||
radeon_cs_set_limit(rmesa->cmdbuf.cs, RADEON_GEM_DOMAIN_VRAM, rmesa->radeonScreen->texSize[0]);
|
||||
|
||||
Reference in New Issue
Block a user