1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-12-26 09:29:45 +00:00

Demonstrated that issue is coloured borders, made a guess as to buffer exhaustion, upped limits as a temporary fix.

This commit is contained in:
Thomas Harte 2016-06-29 21:16:34 -04:00
parent 7f10616be9
commit ff53accca0
3 changed files with 8 additions and 2 deletions

View File

@ -163,6 +163,7 @@ void MOS6560::output_border(unsigned int number_of_cycles)
uint8_t *colour_pointer = _crt->allocate_write_area(1);
if(colour_pointer) *colour_pointer = _registers.borderColour;
_crt->output_level(number_of_cycles);
// _crt->output_blank(number_of_cycles);
}
uint16_t MOS6560::get_address()

View File

@ -41,7 +41,10 @@ const GLsizei IntermediateBufferHeight = 1024;
// Some internal buffer sizes
const GLsizeiptr OutputVertexBufferDataSize = OutputVertexSize * IntermediateBufferHeight; // i.e. the maximum number of scans of output that can be created between draws
const GLsizeiptr SourceVertexBufferDataSize = SourceVertexSize * IntermediateBufferHeight * 2; // (the maximum number of scans) * conservative, high guess at a maximumum number of events likely to occur within a scan
const GLsizeiptr SourceVertexBufferDataSize = SourceVertexSize * IntermediateBufferHeight * 10; // (the maximum number of scans) * conservative, high guess at a maximumum number of events likely to occur within a scan
// TODO: when SourceVertexBufferDataSize is exhausted, the CRT keeps filling OutputVertexBufferDataSize regardless,
// leading to empty scanlines that nevertheless clear old contents.
}
}

View File

@ -334,8 +334,10 @@ void OpenGLOutputBuilder::draw_frame(unsigned int output_width, unsigned int out
glActiveTexture(pixel_accumulation_texture_unit);
framebuffer->bind_texture();
// compositeTexture->bind_texture();
framebuffer->draw((float)output_width / (float)output_height);
// glViewport(0, 0, (GLsizei)output_width / 4, (GLsizei)output_height / 4);
// compositeTexture->bind_texture();
// compositeTexture->draw((float)output_width / (float)output_height);
_fence = glFenceSync(GL_SYNC_GPU_COMMANDS_COMPLETE, 0);
_draw_mutex->unlock();