1# ANGLE Starter Projects 2 3For the most up-to-date list of starter projects, see 4[anglebug.com](https://bugs.chromium.org/p/angleproject/issues/list?q=Hotlist%3DStarterBug). If you 5decide to take on any task, write a comment so you can get in touch with us, and more importantly, 6set yourself as the "owner" of the bug. This avoids having multiple people accidentally working on 7the same issue. 8 9## Refactors 10 11### EGL Validation Refactoring 12 13[anglebug.com/798](http://anglebug.com/798) 14 15Move all EGL validation into separate functions in ValidationEGL.h. This opens up many possibilities 16for auto-generation of entry points and is simply a cleaner structure. 17 18### EGL Entry Point Auto-generation 19 20[anglebug.com/2621](http://anglebug.com/2621) 21 22Auto-generate EGL entry points and stub functions. This greatly reduces the chance of bugs in this 23highly repetitive code and reduces the friction to adding new extensions. 24 25### Support Separate Read and Draw Surfaces 26 27[anglebug.com/2620](http://anglebug.com/2620) 28 29ANGLE has never supported binding separate read and draw surfaces with eglMakeCurrent due to its 30architecture. Some refactoring could be done to support this use case. 31 32### Convert GLenums into typed internal Enums 33 34[anglebug.com/2169](http://anglebug.com/2169) 35 36Using a compact enum instead of GLenum offers type safety. Flat enums can also index into flat 37arrays. We are in the process of migrating all internal GLenums into packed enums. 38 39## Medium Features 40 41### Add an AST Validator to the Shader Translator 42 43[anglebug.com/2733](http://anglebug.com/2733) 44 45An AST validator will reduce the number of bugs in our AST transforms and allow us to be more 46confident about all ASTs generated by the translator. 47 48## Small Features 49 50### Fix shader source viewing in RenderDoc/NSIGHT 51 52[anglebug.com/2734](http://anglebug.com/2734) 53 54It used to be possible to view the shader source when debugging shaders in graphics debuggers but 55now only the shader disassembly is available. 56 57### Implement Android CDD Extensions 58 59[anglebug.com/2506](http://anglebug.com/2506) 60 61The Android CDD requires some EGL and OpenGL ES extensions from every driver. Many of them are 62simply exposing the native driver's extension to ANGLE's frontend. 63 64## Performance 65 66### Add perf test for eglMakeCurrent 67 68[anglebug.com/2556](http://anglebug.com/2556) 69 70Many customers switch Contexts frequently. MakeCurrent shows up as a hotspot. A performance test 71would protect against regressions. 72 73### Refactor std::maps into Static Arrays 74 75[anglebug.com/1389](http://anglebug.com/1389) 76 77ANGLE uses internal global maps for texture tables. We should rewrite them to save on binary size 78and optimize startup time. 79 80## Maintenance 81 82### Add a presubmit python script 83 84[anglebug.com/2626](http://anglebug.com/2626) 85 86This simple script could verify that there is no diff on git cl upload. This saves developer time 87in the long run. 88 89## Conformance 90 91### Vulkan ES2 fixes 92 93[anglebug.com/2615](http://anglebug.com/2615) - see open blocking bugs. Also 94[this link](https://bugs.chromium.org/p/angleproject/issues/list?can=2&q=Renderer%3DVulkan+-has%3Aowner&colspec=ID+Type+Status+Priority+Feature+Owner+Summary&cells=ids) 95for open issues. 96 97Many small edge cases still need attention. 98 99### WebGL Conformance on Windows 100 101[tracking document](https://docs.google.com/spreadsheets/d/1NQePFOdCKT1WKG2P4Qt8igLrLVy4U3vLOLvVWwbkllw/edit?usp=sharing) 102 103ANGLE is preparing to release its OpenGL backend on Windows in Chrome using the passthrough command 104decoder. There are still some failing WebGL tests. 105 106### EGL Conformance 107 108[anglebug.com/2623](http://anglebug.com/2623) 109 110ANGLE's EGL implementation has a lot of holes in it's conformance. There are many tests that fail on 111all platforms due to bugs in ANGLE's EGL frontend. 112