Age | Commit message (Collapse) | Author |
|
Instead of using the invalid GL_ARB_shading_language_120 extension to
determine the GLSL version, use a new ctx->Const.GLSLVersion field.
Updated the intel and r600 drivers, but untested.
See fd.o bug 29910
NOTE: This is a candidate for the 7.9 branch (but let's wait and see if
there's any regressions).
|
|
|
|
Can be reproduced with mesa/demos/src/tests/blitfb.
NOTE: This is a candidate for the 7.9 branch.
|
|
Implement the pipe_rasterizer_state::sprite_coord_enable field
in the draw module (and softpipe) according to what's specified
in the documentation.
The draw module can now add any number of extra vertex attributes
to a post-transformed vertex and generate texcoords for those
attributes per sprite_coord_enable. Auto-generated texcoords
for sprites only worked for one texcoord unit before.
The frag shader gl_PointCoord input is now implemented like any
other generic/texcoord attribute.
The draw module now needs to be informed about fragment shaders
since we need to look at the fragment shader's inputs to know
which ones need auto-generated texcoords.
Only softpipe has been updated so far.
|
|
|
|
Note, BTW, that the Gallium implementation returns 0.5, which seems
to violate the GLSL spec, where it should return 0.0 instead.
Not sure whether changing it to 0 is correct or not.
|
|
This turns on if conversion and unlimited loop unrolling if control
flow is not supported.
NOTE: this will change the behavior of r300g and any other driver
that doesn't advertise control flow
|
|
Changes in v3:
- Also change trace, which I forgot about
Changes in v2:
- No longer adds tessellation shaders
Currently each shader cap has FS and VS versions.
However, we want a version of them for geometry, tessellation control,
and tessellation evaluation shaders, and want to be able to easily
query a given cap type for a given shader stage.
Since having 5 duplicates of each shader cap is unmanageable, add
a new get_shader_param function that takes both a shader cap from a
new enum and a shader stage.
Drivers with non-unified shaders will first switch on the shader
and, within each case, switch on the cap.
Drivers with unified shaders instead first check whether the shader
is supported, and then switch on the cap.
MAX_CONST_BUFFERS is now per-stage.
The geometry shader cap is removed in favor of checking whether the
limit of geometry shader instructions is greater than 0, which is also
used for tessellation shaders.
WARNING: all drivers changed and compiled but only nvfx tested
|
|
They are no longer used.
|
|
Add struct st_context_attribs to describe context profiles and
attributes. Modify st_api::create_context to take the new struct
instead of an st_visual.
st_context_attribs can be used to support GLX_ARB_create_context_profile
and GLX_EXT_create_context_es2_profile in the future. But the
motivation for doing it now is to be able to replace ST_API_OPENGL_ES1
and ST_API_OPENGL_ES2 by profiles.
Having 3 st_api's to provide OpenGL, OpenGL ES 1.1, and OpenGL ES 2.0 is
not a sane abstraction, since all of them share glapi for current
context/dispatch management.
|
|
This increases the chance that GLSL programs will actually work.
Note that continues and returns are not yet lowered, so linking
will just fail if not supported.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
|
|
This allows us to specify different options, especially useful for chips
without unified shaders.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
|
|
Fixes piglit fdo25614-genmipmap.
|
|
Don't try to use more generic varying vars than core Mesa supports.
Fixes fd.o bug 29959.
|
|
shown by the glsl-vs-point-size failing on r600g.
the test passes on softpipe and I get a full piglit test run completing on r600g.
|
|
|
|
Include p_screen.h for complete type to pipe_screen.
|
|
|
|
Fixes llvmpipe regression from one of the prev commits.
|
|
stObj->pt should be set in st_bind_surface, just as in st_TexImage. On
the other hand, st_TexImage should unreference stObj->pt. It also needs
to initialize the texture image again as _mesa_clear_texture_object
clears the image.
|
|
A surfaceless current context is a context that is made current without
draw and read framebuffers. Such contexts can only render to FBOs.
|
|
|
|
Update all drivers to use draw_set_index_buffer,
draw_set_mapped_index_buffer, and draw_vbo. Remove
draw_set_mapped_element_buffer and draw_set_mapped_element_buffer_range.
|
|
Signed-off-by: Brian Paul <brianp@vmware.com>
|
|
This is the same issue as in the previous patch, but here the Blit is not
implemented for separate depth and stencil buffers at all (such
a configuration is not supported in Gallium) and the code incorrectly treated
a D24S8 texture as two separate buffers, making this Blit a no-op.
Signed-off-by: Brian Paul <brianp@vmware.com>
|
|
This code is part of a patch by Marek Olšák.
|
|
This is based on a patch from Marek Olšák.
NOTE: This is a candidate for the Mesa 7.8 branch.
|
|
|
|
|
|
|
|
mfeatures.h defines ASSERT_NO_FEATURE to ASSERT, which is defined in
compiler.h. Header files using the macro should include compiler.h.
|
|
|
|
|
|
Currently Gallium internals always use PIPE_TEXTURE_2D and normalized
coordinates to access textures.
However, PIPE_TEXTURE_2D is not always supported for NPOT textures,
and PIPE_TEXTURE_RECT requires unnormalized coordinates.
Hence, this change adds support for both kinds of normalization.
|
|
Searched for them with:
git grep -E '[!=]=.*PIPE_TEXTURE_2D|PIPE_TEXTURE_2D.*[!=]=|case.*PIPE_TEXTURE_2D'
Behavior hasn't been changed.
|
|
Conflicts:
src/mesa/program/prog_optimize.c
|
|
'struct dd_function_table' only conditionally contains
the function pointer NewFramebuffer and friends based on
FEATURE_EXT_framebuffer_* defines. (See src/mesa/main/dd.h)
Fixes the build when the features are disabled and the vfuncs
don't exist.
|
|
This is a GLSL2 regression fix.
|
|
|
|
|
|
st_program.h
Remove p_shader_tokens.h
Include st_context.h for st_context symbol.
Include p_state.h for PIPE_MAX_SHADER_INPUTS symbol.
Remove unnecessary forward declarations.
st_cb_bitmap.c
st_cb_clear.c
Include p_shader_tokens.h now that st_program.h doesn't include it.
|
|
|
|
The correct for this is of course to do what comment says
|
|
st_mesa_to_tgsi.h
Replace tgsi_ureg.h with a forward declaration.
Include p_compiler.h for ubyte symbol.
st_program.c
Include tgsi_ureg.h directly.
|
|
Include mtypes.h for GLcontext, gl_buffer_index, and GLframebuffer
symbols.
Include p_compiler.h for boolean symbol.
Include st_context.h in st_cb_eglimage.c as it previously included
st_context.h indirectly through st_manager.h.
|
|
|
|
Include mtypes.h for GLcontext symbol.
Add forward declaration for st_context.
|
|
|
|
|
|
|