Age | Commit message (Collapse) | Author |
|
The problem with doing it on the way in is that for a function with
multiple early returns, we'll move an outer block in, then restart the
pass, then move the two inside returns out, then never move outer
blocks in again because the remaining early returns are inside an else
block and they don't know that there's a return just after their
block. By going inside-out, we get the early returns stacked up so
that they all move out with a series of
move_returns_after_block().
Fixes (on i965):
glsl-fs-raytrace-bug27060
glsl-vs-raytrace-bug26691
|
|
https://bugs.freedesktop.org/show_bug.cgi?id=29304
|
|
https://bugs.freedesktop.org/show_bug.cgi?id=29302
|
|
This catches a few remaining functions that weren't getting inlined,
generally operating on global or out variables and using an early
return to skip work when possible.
Fixes for i965:
glsl1-function with early return (3)
|
|
This makes many remaining functions inlinable.
Fixes for i965:
glsl1-function with early return (1)
glsl1-function with early return (2)
|
|
|
|
It was harmless, but ugly.
|
|
|
|
Fixes (with software, except for alpha):
glsl1-function with early return(3)
|
|
No more trying to match parens in my head when looking at the body of
a short function containing an if statement.
|
|
|
|
|
|
|
|
We already have asserts that it was the last call in the function, so
it's safe to remove after it got cloned in.
Fixes:
glsl-fs-functions-4.
|
|
I hate single linked lists.
|
|
|
|
|
|
|
|
The Draw flush inside r300_flush was the culprit.
Also, no need to flush Draw when changing a state since the flush is
already inside swtcl_draw_vbo.
|
|
|
|
|
|
Fixes a failed assertion with LLVM 2.6:
<unnamed>::JITResolver::JITResolver(llvm::JIT&): Assertion
`TheJITResolver == 0&& "Multiple JIT resolvers?"' failed.
Though, not everyone seems to experience this problem.
|
|
|
|
This reverts commit 5f90e76c54bbf4456c977b3cbca450d7a570179e.
Bad cherry-pick.
|
|
If y==NULL and y_stride==NULL it means the texture is 1D. Return
zero for out_i and the offset instead of garbage.
|
|
Useful for packing mask values.
|
|
Less susceptible to be broken.
|
|
|
|
Unfortunately LLVM doesn't emit EMMS itself, and there is no
easy/effective way to disable MMX.
http://llvm.org/bugs/show_bug.cgi?id=3287
|
|
Unnecessary.
|
|
|
|
|
|
with no output
|
|
This is only compile tested.
|
|
The other drawing variants such as draw_arrays or
draw_elements_instanced were removed.
This fixes fdo bug #29287.
|
|
This fixes fdo bug #29286.
|
|
Directly include mtypes.h instead of including context.h to include
mtypes.h.
|
|
|
|
Document the new unified drawing method and remove references to old
ones.
|
|
That is, remove pipe_context::draw_arrays, pipe_context::draw_elements,
pipe_context::draw_arrays_instanced,
pipe_context::draw_elements_instanced,
pipe_context::draw_range_elements.
|
|
Update u_draw_quad, st/vega, and st/mesa to use pipe_context::draw_vbo.
|
|
Some drivers define a generic function that is called by all drawing
functions. To implement draw_vbo for such drivers, either draw_vbo
calls the generic function or the prototype of the generic function is
changed to match draw_vbo.
Other drivers have no such generic function. draw_vbo is implemented by
calling either draw_arrays and draw_elements.
For most drivers, set_index_buffer does not mark the state dirty for
tracking. Instead, the index buffer state is emitted whenever draw_vbo
is called, just like the case with draw_elements. It surely can be
improved.
|
|
This commit adds a new unified draw_vbo method to pipe_context. Unlike
other draw methods, draw_vbo treats the index buffer as a state which is
set with set_index_buffer.
|
|
|
|
|
|
|
|
|
|
These extensions allow an application to make a context current by
passing EGL_NO_SURFACE for the write and read surface in the call to
eglMakeCurrent. The motivation is that applications that only want to
render to client API targets (such as OpenGL framebuffer objects)
should not need to create a throw-away EGL surface just to get a
current context.
|
|
|
|
|