Age | Commit message (Collapse) | Author |
|
gcc 4.8 interprets ""m as a C++11 string literal - need to add a
space to make sure it is interpreted the way it should be.
Signed-off-by: Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org>
|
|
|
|
Adds CanvasDRM, which uses GBM and KMS APIs to manage surfaces and modesetting,
respectively. Allows glmark2 to run on a console and take over the framebuffer
directly (no window/display manager).
|
|
pointer for the timeout parameter, select() won't time out and we don't need to
handle that return value. Secondly, unless we have a really great idea for
handling user input (apart from Ctrl-C), we don't need to listen on stdin.
|
|
CanvasDRM directly, DRMState had no knowledge of the event, and wasn't able
to detect it properly when select() came back with an error. Move the
quit handler into DRMState, and give it a public should_quit() method that
CanvasDRM can call. This is better encapsulation, and allows DRMState to
properly detect the user interrupt and release the GBM resources so the
console isn't hung when the application exits.
|
|
scenes during code review for that branch merge).
|
|
Adds new SceneRefract, which performs a two interface refraction through an
object, as well as a surface reflection. The object (model), environment
(texture), and index of refraction of the object medium (index) are all
adjustable via command line options, but the default is to render the Stanford
Bunny against a background of the 'nasa1' texture with a refractive index of
1.2; the medium surrounding the object is assumed to be air/vacuum (index==1.0).
|
|
The memory leak occurs when using the scene for multiple benchmarks.
|
|
The default is 1.2, but could be anything ("believable" effects are probably in
the lower values).
|
|
object (the set up of the depth texture, the rendering of the back-side pass,
and sampling the depth map), and handling the projection of the transmitted
vector through the object to the exit point. Also added some comments in the
shader to explain the steps.
|
|
based upon an approximation of the projection of the front refraction to a point
on the back of the object. Use that point to do the back refraction.
|
|
casts unnecessary.
|
|
target object.
|
|
"air", so make it so.
|
|
|
|
incident vector for the front facing refraction. The light direction is still
used to compute surface reflection for the specular component.
|
|
the depth pass shader).
|
|
of the object. This required adding a color target for the first pass so that
we can store the surface normals from the back side of the object. Still need
to determine whether or not to factor in the distance from the front to the
back of the object (else the distance map may not be needed and we may not need
the depth target in the first pass).
|
|
light through a transparent object.
|
|
review comments. Can always be re-inserted if an actual page flip issue is encountered.
|
|
Adds CanvasDRM to support rendering to gbm managed surfaces and flipping to DRM-managed framebuffers.
|
|
Enhances GLVisualConfig to support the stencil attribute (defaults to prefer
no stencil buffer configs).
Updates EglConfig to query for all of table 3.1 in the EGL 1.4 spec.
|
|
|
|
importantly, to explicitly favor no stencil unless asked via command line option.
|
|
are unused at the moment but may be useful for debugging.
|
|
|
|
Adds EGLState object, which consolidates all EGL interactions.
|
|
- Remove X11-specific native visual type info as it breaks Android build
(and is not likely to be of interest anyway).
- Remove 'info' level EGL info around extensions, vendor, etc. We don't do it
for GLX apart from minimum version requirements (which we don't have for EGL).
- Tweak config initialization to match more closely what was originally in
CanvasX11EGL, in particular, define the config attribs according to the
GLVisualConfig we were given and don't override it.
|
|
Adds SceneShadow to exercise shadow mapping.
|
|
works well for both an X11-based and a DRM-based canvas.
|
|
of new plumbing so that there is an explicit acknowledgement of the window
system integration layer (::init_gl_winsys()). Additional canvas objects that
do not integrate through X11 will not need this as there won't be the
added legacy of GLX.
|
|
up the canvas implementation and paves the way for additional window system
integrations (raw KMS device, Wayland, etc.).
|
|
just use a simple matrix.
|
|
|
|
In cases where a mesh will do "double duty" but not be used the same way in
all cases (in SceneShadow, the shader for the depth pass would ignore the
"normal" attribute), the GL can return a -1 for the attribute location, even
if it is declared in the shader (compilers are free to optimize away unused
attributes, etc.). So, we check for this and don't try to enable attributes
whose location is -1.
|
|
from which we'll later generate the horse's shadow when we render the ground.
Notice the pass-through varying for the normal. This is a bit of a workaround
for the set up of the mesh, which will attempt to enable vertex attribs for
both position and normals (some shader compilers will optimize out an unused
attribute, which means the attribute location is -1 and the mesh code will
generate an error).
|
|
view of the horse going.
|
|
upon it as well, as the current main-loop logic only calls supported if the
scene isn't marked as running (typically only happens if setup fails).
|
|
shadow mapping scene. When complete, the scene will render geometry into a
depth texture from the point of view of the light source for the scene, then
render the "ground" onto which a shadow of the object would be projected (the
depth values from the texture will be used for a distance-from-light
comparison with the actual object), and finally render the actual object, which
appears to be casting a shadow.
|
|
(The spec always had a void return value for glXSwapIntervalEXT, however, the
original example and protocol had a return value of int. To make matters worse,
the header files in mesa were updated a year after the spec.). Also, make the
GLX_MESA_swap_control initialization match the new logic for GLX_EXT_swap_control.
|
|
|
|
set up correctly.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Surround the benchmark text definitions in quotes to ensure spaces are
properly handled. This leverages the recently introduced (rev 244)
Util::split() support for bash-like quoting rules.
|
|
Update Util::split() invocations in glmark2 to use the new interface.
|