mirror of
https://github.com/servo/servo.git
synced 2025-07-22 23:03:42 +01:00
Add extra debug assertions for WebGL errors
This commit is contained in:
parent
cfa50b8222
commit
44db86fefd
1 changed files with 7 additions and 0 deletions
|
@ -680,10 +680,14 @@ impl WebGLThread {
|
||||||
)
|
)
|
||||||
.expect("Where's the GL data?");
|
.expect("Where's the GL data?");
|
||||||
|
|
||||||
|
// Ensure there are no pending GL errors from other parts of the pipeline.
|
||||||
|
debug_assert_eq!(data.gl.get_error(), gl::NO_ERROR);
|
||||||
|
|
||||||
// Check to see if any of the current framebuffer bindings are the surface we're about
|
// Check to see if any of the current framebuffer bindings are the surface we're about
|
||||||
// to swap out. If so, we'll have to reset them after destroying the surface.
|
// to swap out. If so, we'll have to reset them after destroying the surface.
|
||||||
let framebuffer_rebinding_info =
|
let framebuffer_rebinding_info =
|
||||||
FramebufferRebindingInfo::detect(&self.device, &data.ctx, &*data.gl);
|
FramebufferRebindingInfo::detect(&self.device, &data.ctx, &*data.gl);
|
||||||
|
debug_assert_eq!(data.gl.get_error(), gl::NO_ERROR);
|
||||||
|
|
||||||
debug!("Getting swap chain for {:?}", swap_id);
|
debug!("Getting swap chain for {:?}", swap_id);
|
||||||
let swap_chain = match swap_id {
|
let swap_chain = match swap_id {
|
||||||
|
@ -698,6 +702,7 @@ impl WebGLThread {
|
||||||
swap_chain
|
swap_chain
|
||||||
.swap_buffers(&mut self.device, &mut data.ctx)
|
.swap_buffers(&mut self.device, &mut data.ctx)
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
debug_assert_eq!(data.gl.get_error(), gl::NO_ERROR);
|
||||||
|
|
||||||
// TODO: if preserveDrawingBuffer is true, then blit the front buffer to the back buffer
|
// TODO: if preserveDrawingBuffer is true, then blit the front buffer to the back buffer
|
||||||
// https://github.com/servo/servo/issues/24604
|
// https://github.com/servo/servo/issues/24604
|
||||||
|
@ -705,10 +710,12 @@ impl WebGLThread {
|
||||||
swap_chain
|
swap_chain
|
||||||
.clear_surface(&mut self.device, &mut data.ctx, &*data.gl)
|
.clear_surface(&mut self.device, &mut data.ctx, &*data.gl)
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
debug_assert_eq!(data.gl.get_error(), gl::NO_ERROR);
|
||||||
|
|
||||||
// Rebind framebuffers as appropriate.
|
// Rebind framebuffers as appropriate.
|
||||||
debug!("Rebinding {:?}", swap_id);
|
debug!("Rebinding {:?}", swap_id);
|
||||||
framebuffer_rebinding_info.apply(&self.device, &data.ctx, &*data.gl);
|
framebuffer_rebinding_info.apply(&self.device, &data.ctx, &*data.gl);
|
||||||
|
debug_assert_eq!(data.gl.get_error(), gl::NO_ERROR);
|
||||||
|
|
||||||
let SurfaceInfo {
|
let SurfaceInfo {
|
||||||
framebuffer_object,
|
framebuffer_object,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue