Marek Olšák
51c219739c
radeonsi: unify CB_RESOLVE blitter invocation code
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-06-22 01:51:02 +02:00
Marek Olšák
2263610827
radeonsi: flush DB caches only when transitioning from DB to texturing
...
Use the mechanism of si_decompress_textures, but instead of doing
the actual decompression, just flag the DB cache flush there.
This removes a lot of unnecessary DB cache flushes.
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-06-22 01:51:02 +02:00
Marek Olšák
fdca690e91
radeonsi: add separate HUD counters for CB and DB cache flushes
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-06-22 01:51:02 +02:00
Marek Olšák
b007744051
st/mesa: don't set the border color if it's unused
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-06-22 01:51:02 +02:00
Marek Olšák
743ad599a9
st/mesa: don't set 16 scissors and 16 viewports if they're unused
...
Only do so if there is a shader writing gl_ViewportIndex.
This removes a lot of CPU overhead for the most common case.
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-06-22 01:51:02 +02:00
Marek Olšák
2ec1e32d11
st/mesa: fix pipe_rasterizer_state::scissor with multiple viewports
...
Cc: 17.1 <mesa-stable@lists.freedesktop.org>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-06-22 01:51:02 +02:00
Marek Olšák
d7e52327f0
st/mesa: simplify st_update_viewport
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-06-22 01:51:02 +02:00
Marek Olšák
a8753b254d
st/mesa: remove redundant sample_mask checking
...
cso does that too
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-06-22 01:51:02 +02:00
Marek Olšák
2108b73cf3
st/mesa: use precomputed st_fb_orientation
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-06-22 01:51:02 +02:00
Marek Olšák
91579254db
mesa: don't call _mesa_update_clip_plane in the GL core profile
...
It uses the projection matrix to transform the clip plane.
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
2017-06-22 01:51:02 +02:00
Marek Olšák
602a3e50e5
st/mesa: set st_context::...num_samplers to 0 when there are no samplers
...
This was missed during my st/mesa series.
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-06-22 01:51:02 +02:00
Marek Olšák
f368ea37a2
st/mesa: unify fail paths for update_single_texture
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-06-22 01:51:02 +02:00
Marek Olšák
d14bb37a0a
st/mesa: don't call u_sampler_view_default_template for sampler views
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-06-22 01:51:02 +02:00
Marek Olšák
bfe1e7737a
st/mesa: always set sampler swizzle according to the texture base format
...
Mainly don't (indirectly) call util_format_description here.
If the driver supports texture swizzling, this will always do the right
thing. If the driver doesn't support it, it doesn't matter.
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-06-22 01:51:02 +02:00
Marek Olšák
25723857d9
st/mesa: samplers only need to track whether GLSL >= 130
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-06-22 01:51:02 +02:00
Marek Olšák
3ee1c9b126
st/mesa: simplify get_texture_format_swizzle
...
- Don't check GL_NONE (that was only for buffers).
- Don't use util_format_is_depth_or_stencil.
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-06-22 01:51:02 +02:00
Marek Olšák
f0ecd36ef8
st/mesa: add an entirely separate codepath for setting up buffer views
...
Remove handling of buffers from all texture paths.
This simplifies things for both buffers and textures.
get_sampler_view_format is also cleaned up not to call
util_format_is_depth_and_stencil.
v2: also update st_NewTextureHandle
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com> (v1)
2017-06-22 01:51:02 +02:00
Marek Olšák
fbd9cc6169
st/mesa: don't return an error from update_single_texture
...
It can just return a NULL sampler view, which is better than not doing
anything at all.
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-06-22 01:51:02 +02:00
Marek Olšák
6f4ead6bfd
st/mesa: clean up trivial dereferences in update_textures
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-06-22 01:51:02 +02:00
Marek Olšák
5766c18f59
st/mesa: don't check MaxTextureImageUnits in update_textures
...
The linker takes care of it.
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-06-22 01:51:02 +02:00
Marek Olšák
4c0bce921b
st/mesa: don't call st_shader_stage_to_ptarget in update_textures
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-06-22 01:51:02 +02:00
Marek Olšák
c9a16fde80
cso: inline a few frequently-used functions
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-06-22 01:51:02 +02:00
Marek Olšák
0e0fc1ce71
cso: don't return errors from sampler functions
...
No code checks the errors.
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-06-22 01:51:02 +02:00
Marek Olšák
4d6fab245e
cso: don't track the number of sampler states bound
...
This removes 2 loops from hot codepaths and adds 1 loop to a rare codepath
(restore_sampler_states), and makes sanitize_hash() slightly worse.
Sampler states, when bound, are not unbound for draw calls that don't need
them. That's OK, because bound sampler states don't add any overhead.
This results in lower CPU overhead in most cases.
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-06-22 01:51:02 +02:00
Marek Olšák
c845984690
st/mesa: sink and simplify texBaseFormat getting for sampler states
...
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-06-22 01:51:02 +02:00
Marek Olšák
8aba778fa2
st/mesa: don't set sampler states for TBOs
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-06-22 01:51:02 +02:00
Marek Olšák
222a910a9b
st/mesa: optimize sampler state translation code
...
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-06-22 01:51:02 +02:00
Marek Olšák
39ab9fb36c
st/mesa: sink code needed for apply_texture_swizzle_to_border_color
...
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-06-22 01:51:02 +02:00
Marek Olšák
588371b772
st/mesa: simplify update_shader_samplers
...
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-06-22 01:51:02 +02:00
Marek Olšák
18d498a1ae
st/mesa: when binding sampler states, don't check the max sampler limit
...
The GLSL linker takes care of it.
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-06-22 01:51:02 +02:00
Marek Olšák
fd86876fe4
st/mesa: don't unbind sampler states if none are used
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
2017-06-22 01:51:02 +02:00
Marek Olšák
b43c887a9b
st/mesa: unify update_gp/tcp/tep code
...
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-06-22 01:51:02 +02:00
Marek Olšák
56a28ace35
st/mesa: don't search through shader variants if there is only one
...
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-06-22 01:51:02 +02:00
Marek Olšák
dbf1413014
st/mesa: don't track shader variants in st_context
...
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-06-22 01:51:02 +02:00
Marek Olšák
1c818fff0c
st/mesa: move blend color into its own state atom
...
This is now sensible thanks to the NewBlendColor flag.
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-06-22 01:51:02 +02:00
Marek Olšák
0b03d82f9c
st/mesa: check correctly if multisampling is enabled
...
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-06-22 01:51:02 +02:00
Marek Olšák
9c499e6759
st/mesa: don't invoke st_finalize_texture & st_convert_sampler for TBOs
...
This is a v2 of the previous patch (v1 didn't skip st_finalize_texture).
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
2017-06-22 01:51:02 +02:00
Marek Olšák
c0ed52f614
mesa: simplify _mesa_is_image_unit_valid for buffers
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
2017-06-22 01:51:02 +02:00
Marek Olšák
caf39d6df9
mesa: don't flag _NEW_PROGRAM_CONSTANTS for GLSL programs for st/mesa
...
v2: also update _mesa_uniform_handle for bindless textures
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com> (v1)
Reviewed-by: Brian Paul <brianp@vmware.com> (v1)
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com> (v1)
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
2017-06-22 01:51:02 +02:00
Kenneth Graunke
b7ba745032
glsl: Track whether uniforms are active per stage
...
for finer granularity state flagging
v2: Marek - use a bitmask, add shader cache support
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
2017-06-22 01:51:02 +02:00
Marek Olšák
670c4dd395
mesa: don't flag _NEW_PROGRAM_CONSTANTS for non-GLSL programs for st/mesa
...
This has the benefit that we get to set up constants for exactly
the shader stage that needs it.
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
2017-06-22 01:51:02 +02:00
Marek Olšák
0b70d6ec56
mesa: flush vertices before updating ctx->_Shader
...
Cc: 17.1 <mesa-stable@lists.freedesktop.org>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
2017-06-22 01:51:02 +02:00
Marek Olšák
0160a59f29
mesa: set driver flags for glPopAttrib(GL_ENABLE_BIT) properly
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
2017-06-22 01:51:02 +02:00
Marek Olšák
df0f6a0af3
mesa: don't flag _NEW_POLYGON_STIPPLE for st/mesa
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
2017-06-22 01:51:02 +02:00
Marek Olšák
58a02196b9
mesa: don't flag _NEW_LINE for st/mesa
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
2017-06-22 01:51:02 +02:00
Marek Olšák
bc871a1baf
mesa: don't flag _NEW_POLYGON for st/mesa
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
2017-06-22 01:51:02 +02:00
Marek Olšák
00173d91b7
mesa: don't flag _NEW_TRANSFORM for st/mesa if possible
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
2017-06-22 01:51:02 +02:00
Marek Olšák
55f1106637
mesa: don't flag _NEW_TRANSFORM for Transform.RasterPositionUnclipped
...
It's not a driver state, it's for glRasterPos.
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
2017-06-22 01:51:02 +02:00
Marek Olšák
1f3dc332f5
mesa: don't flag _NEW_TRANSFORM for primitive restart
...
It's a draw state.
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
2017-06-22 01:51:02 +02:00
Marek Olšák
29db5c1dcc
mesa: don't flag _NEW_VIEWPORT for st/mesa if possible
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
2017-06-22 01:51:02 +02:00