Open Bug 1200864 Opened 10 years ago Updated 2 years ago

Skip DrawElements buffer validation when we have robust_buffer_access

Categories

(Core :: Graphics: CanvasWebGL, enhancement, P2)

enhancement

Tracking

()

People

(Reporter: jgilbert, Unassigned)

References

(Blocks 1 open bug)

Details

(Keywords: feature, perf, Whiteboard: webgl-perf)

Attachments

(2 files)

robust_buffer_access behavior is also always guaranteed by D3D10 and above.
Attachment #8655714 - Flags: review?(dglastonbury)
Attachment #8655715 - Flags: review?(dglastonbury)
Comment on attachment 8655714 [details] [diff] [review] 0001-Don-t-validate-indices-with-robust_buffer_access_beh.patch Review of attachment 8655714 [details] [diff] [review]: ----------------------------------------------------------------- nits ::: dom/canvas/WebGLContextDraw.cpp @@ +253,4 @@ > > if (!ValidateBufferFetching(info)) > return false; > + WS ::: dom/canvas/WebGLContextValidate.cpp @@ +1939,4 @@ > > if (mLoseContextOnMemoryPressure) > mContextObserver->RegisterMemoryPressureEvent(); > + WS ::: gfx/gl/GLContext.cpp @@ +1643,4 @@ > 0, nullptr, > true); > } > + WS ::: gfx/gl/GLContext.h @@ +529,4 @@ > * Init features regarding OpenGL extension and context version and profile > */ > void InitFeatures(); > + WS @@ +3619,4 @@ > static bool ShouldSpew(); > static bool ShouldDumpExts(); > void Readback(SharedSurface* src, gfx::DataSourceSurface* dest); > + WS ::: gfx/gl/GLContextEGL.h @@ +69,4 @@ > virtual bool IsWARP() const override { > return sEGLLibrary.IsWARP(); > } > + WS
Attachment #8655714 - Flags: review?(dglastonbury) → review+
Comment on attachment 8655715 [details] [diff] [review] 0002-Ask-for-robust_buffer_access.patch Review of attachment 8655715 [details] [diff] [review]: ----------------------------------------------------------------- nits ::: gfx/gl/GLContextProviderEGL.cpp @@ +511,5 @@ > +CreateContextForShareContext(EGLDisplay display, EGLConfig config, > + EGLContext shareContext) > +{ > + EGLContext context = nullptr; > + WS @@ +520,5 @@ > + context = sEGLLibrary.fCreateContext(EGL_DISPLAY(), config, shareContext, > + kContextAttribsRobustness); > + } > + } > + WS @@ +525,5 @@ > + if (!context) { > + context = sEGLLibrary.fCreateContext(EGL_DISPLAY(), config, shareContext, > + kContextAttribs); > + } > + WS @@ +541,4 @@ > NS_WARNING("Failed to bind API to GLES!"); > return nullptr; > } > + WS @@ +546,5 @@ > + if (shareContext) { > + context = CreateContextForShareContext(EGL_DISPLAY(), config, > + shareContext->mContext); > + } > + WS @@ +554,2 @@ > } > + WS
Attachment #8655715 - Flags: review?(dglastonbury) → review+
Haha, I was using a different editor. Sorry for the WS!
It looks like ANGLE does these even if we don't. We can at least skip ours, though.
Blocks: 1268629
Whiteboard: webgl-perf
Severity: normal → enhancement
Keywords: feature, perf
Priority: -- → P2
Assignee: jgilbert → nobody
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: