Age | Commit message (Collapse) | Author |
|
|
|
|
|
our code resets pipe_vertex_buffer's with different offsets when rendering
vbo, meaning that we kept creating insane number of shaders even for simple
apps e.g. geartrain had 54 shaders and it was taking almost 27 seconds just to
compile them. this patch passes pipe_vertex_buffer's to the jit function and lets
it to the stride/buffer_offset computation at run time. the slowdown at runtime
is largely unnoticable but the we go from 54 shaders to 3, and from 27 seconds to less
than 1.
|
|
|
|
|
|
|
|
Unnecessary, and doesn't even guarantee size.
|
|
Loosely based on Luca Barbieri's commit
52e9b990a192a9329006d5f7dd2ac222effea5a5.
|
|
|
|
Superseded by u_format_yuv.c. Also PIPE_FORMAT_YUYV's interpretation was
inconsistent: it was being interpreted as VYUY.
|
|
|
|
This field should be null from the initial calloc() of the draw context,
but let's be safe (and improve understanding of the code).
|
|
|
|
|
|
This was missed in commit ae69f9fbf0a1aab7186e5b644085a5fe5aea99af.
New files from the gallium_draw_llvm merge were added to SCons but
not make.
|
|
|
|
Fixes build breakage.
|
|
|
|
format we can't code LLVM IR directly.
|
|
into here.
|
|
|
|
|
|
we were trying to store the outputs starting at the same offset we
were using for the input arrays, which was writing beyond the end of
the output array.
|
|
it's whatever the var step is (4 usually) not an unconditional 1
|
|
|
|
we don't index within the outputs but only within the inputs
|
|
|
|
|
|
Based on code from Brian Paul and Michal Krol.
|
|
the loop was doing a NE comparison which we could have skipped if the prim
was triangles (3 verts) and our step was 4 verts. also fix offsets in conversion
to aos.
|
|
change the name to not clash and accuretly represent the number of inputs
we store in the data member
|
|
|
|
|
|
|
|
support.
Not all is bad, but I'm afraid I'll have to throw the baby with the water
given they are all tied to together.
|
|
there's no good way of aligning the output's, and since the vertex_header
is variable sized in the first place we need to extract elements from a vector
and store them individually into an array. this gets the basic examples working
again
|
|
|
|
The code is correct. Tell Coverity that the fallthrough case is
intentional.
|
|
|
|
|
|
Putting calls to util_format_init all over the codebase is infeasible.
Instead, half float tables are pregenerated, and the s3tc library is
loaded on demand.
I believe this is a solution that combines performance, cleanliness,
flexibility and portability.
|
|
This improves the code by making it more readable, and removes
special knowledge of S3TC and other formats from softpipe.
|
|
This changes the S3TC function pointers to be initialized to stubs
that load the S3TC library and then delegate to the real functions.
If the S3TC library fails to load, the function pointers are replaced
with a "nop" function.
The code is also changed to attempt to load the library only one time.c
Note that unlike checking for a flag, this method has no performance
cost at all.
The use of the "nop" functions also allows to avoid most checks, that
are only preserved when the function does non-trivial work.
|
|
This solution avoids the issue of how to run the initializers and
also allows those pages (and the parts of them in processor caches)
to be shared between multiple processes.
The drawback is slightly higher library size.
|
|
Fixes MSVC build.
|
|
Switch from auto-init to explicit init for util_half per Brian Paul's
indication.
NOTE: this is probably broken because not enough things call util_format_init.
Will be fixed shortly
|
|
|
|
|
|
They apparently both declare the section, but #pragma data_seg
also puts all subsequent definitions in the section, which is
undesirable.
This should be the correct solution, and is actually used by the
reference I cited (but I forgot to do it in my code).
Untested, let me know if it doesn't work.
|
|
Sorry, forgout about that.
|