GeCo2017 Memo - GepardGraphics/gepard GitHub Wiki

Gepard Graphics

Gepard Conference, Szeged 2017

Attendees: Dániel Bátyai (dbatyai), Zsolt Borbely (bzsolt), Attila Dusnoki (dati91) Kristóf Kosztyó (kkristof), Szilárd Ledán (szledan)


API design change (@szledan)

This speech concluded in a wide agreement across the attendees about the need of the revolutionary change of the current API. The binding to the Canvas 2D API will marginalized while the Gepard Engine's internal functions will be exposed. This change gives an opportunity to implement a record-replay mechanism to reduce graphics driver stalls caused by suboptimal usage of the draw calls.

The speech also raised a discussion about the benchmarks, tests and examples.

For benchmarks it would be possible to use the examples, however this would cover the performance differences of the various backends, while it would render impossible to compare with other well known 2D graphics engines. Running javascript files as Canvas 2D benchmarks would give a nice overview on the performance of the Canvas API implementation, however this needs a javascript engine binding, and this way the benchmarks won't give good coverage performance wise of the whole Gepard API.

The tests could be implemented with a simple markup language, where the native implementation runs these simplified test cases with a primitive interpreter. The webrender's wrench could be a good example.

The examples should be written in regard to the new Gepard API, where it should show the performance differences between the good and bad usage of the library.

Images (@kkristof)

This short discussion was about the implementation of the Image class. The attendees agreed on the image implementation should not rely on the Html's image specification. The implementation should be as simple as possible, thus it will contain the dimensions of the image, the image's format, and the raw image data only.

WebRender (@dati91)

Attila showed a detailed overview on the WebRender. The WebRender is written in rust, and works in a display list fashion.

Lunch

We visited the Cirmi, and it was delicious.

Free dicussion

  • SMART pointers
  • Memory allocator
    • First this would be a wraper over the system's malloc, later on this will be changed to a new allocator
  • Record-replay mechanism
  • Revisited the last year promises
  • Buil-system improvements