Marek Olšák
882c18bf1c
gallium/radeon: clean up a misleading statement from the old days
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-06-07 19:38:43 +02:00
Marek Olšák
66176e6f14
radeonsi: don't use 1D tiling for Z/S on VI to get TC-compatible HTILE
...
It's always good to have fewer decompress blits.
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-06-07 19:38:42 +02:00
Marek Olšák
b40d8026fa
gallium/radeon: subclass threaded_transfer
...
v2: use assert on rtransfer->b.staging
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de>
2017-05-15 13:01:33 +02:00
Marek Olšák
b4fc399c08
gallium/radeon: subclass threaded_resource
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de>
2017-05-15 13:01:33 +02:00
Marek Olšák
8b5485957e
gallium/radeon: unwrap a context if we get a wrapped one
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de>
2017-05-15 13:01:33 +02:00
Nicolai Hähnle
854ed47f3e
radeonsi: mark fast-cleared textures as compressed when dirtying
...
There are a bunch of piglit fast clear tests that regressed on SI, for
example ./bin/ext_framebuffer_multisample-fast-clear single-sample.
The problem is that a texture is bound as a framebuffer, cleared, and
then rendered from in a loop that loops through different clear colors.
The texture is never rebound during all this, so the change to
tex->dirty_level_mask during fast clear was not taken into account
when checking for compressed textures.
I have considered simply reverting the problematic commit. However,
I think this solution is better. It does require looping through all
bound textures after a fast clear, but the alternative would require
visiting more textures needless on every draw. Draws are much more
common than clears.
Note that the rendering feedback loop rules do not apply here, because
the framebuffer binding is changed between the glClear and the draw
that samples from the texture that was cleared.
Fixes: bdd6449769
("radeonsi: don't mark non-dirty textures with CMASK as compressed")
Cc: 17.1 <mesa-stable@lists.freedesktop.org>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2017-05-08 17:42:16 +02:00
Marek Olšák
744317c9d2
radeonsi/gfx9: allow CMASK fast clear with RB+
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-03-31 21:41:57 +02:00
Marek Olšák
6ab2042761
radeonsi/gfx9: fix and enable single-sample CMASK fast clear
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-03-31 21:41:57 +02:00
Marek Olšák
35aaccaf81
radeonsi/gfx9: fix linear mipmap CPU access
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-03-31 21:41:57 +02:00
Marek Olšák
8c7d1ded19
radeonsi: decompress DCC in set_framebuffer_state instead of create_surface (v2)
...
for threaded gallium, which can't use pipe_context in create_surface
v2: don't add a new decompress helper function
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-03-31 20:57:53 +02:00
Marek Olšák
83d3e6fbff
radeonsi: fix an unused-variable warning in a release build
2017-03-30 17:22:25 +02:00
Marek Olšák
3b1934d9b6
gallium/radeon: s/dcc_disable/disable_dcc/
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Tested-by: Edmondo Tommasina <edmondo.tommasina@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
2017-03-30 16:09:39 +02:00
Marek Olšák
a955ee788f
gallium/radeon: add and use a new helper vi_dcc_enabled
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Tested-by: Edmondo Tommasina <edmondo.tommasina@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
2017-03-30 16:09:37 +02:00
Marek Olšák
474468fbf9
radeonsi/gfx9: disable features that don't work
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-03-30 14:44:33 +02:00
Marek Olšák
7695ea0c02
radeonsi/gfx9: add linear address computations for texture transfers
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-03-30 14:44:33 +02:00
Marek Olšák
7d88233f84
radeonsi/gfx9: handle pitch and offset overrides for texture_from_handle
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-03-30 14:44:33 +02:00
Marek Olšák
de55e57e29
radeonsi/gfx9: set/validate GFX9 BO metadata
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-03-30 14:44:33 +02:00
Marek Olšák
bd1da6b339
radeonsi/gfx9: add radeon_surf.gfx9.surf_offset
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-03-30 14:44:33 +02:00
Marek Olšák
405bacd820
radeonsi/gfx9: fix MIP0_WIDTH & MIP0_HEIGHT for compressed texture blits
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-03-30 14:44:33 +02:00
Marek Olšák
272b50a6f4
radeonsi/gfx9: do DCC clears on non-mipmapped textures only
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-03-30 14:44:33 +02:00
Marek Olšák
aba8e0ea68
radeonsi/gfx9: update can_sample_z/s flags
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-03-30 14:44:33 +02:00
Marek Olšák
054dcbe42c
radeonsi/gfx9: pass correct parameters to buffer_get_handle
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-03-30 14:44:33 +02:00
Marek Olšák
710aaed52b
radeonsi/gfx9: update si_set_optimal_micro_tile_mode
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-03-30 14:44:33 +02:00
Marek Olšák
7fcad40ca5
radeonsi/gfx9: don't check array_mode for allowing TC-compatible HTILE
...
GFX9 supports this with all modes except linear.
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-03-30 14:44:33 +02:00
Marek Olšák
6f09b0d076
radeonsi/gfx9: update HTILE/CMASK/FMASK allocators
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-03-30 14:44:33 +02:00
Marek Olšák
a0e8b73594
radeonsi/gfx9: update r600_print_texture_info
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-03-30 14:44:33 +02:00
Marek Olšák
b25d7c2cbf
gallium/radeon: move pre-GFX9 radeon_bo_metadata.* to u.legacy.*
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-03-30 14:44:33 +02:00
Marek Olšák
ba2e7c68ce
gallium/radeon: move pre-GFX9 radeon_surf.* members to radeon_surf.u.legacy.*
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-03-30 14:44:33 +02:00
Marek Olšák
641b79774a
radeonsi/gfx9: allow Z16_UNORM for TC-compatible HTILE
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-03-30 14:44:33 +02:00
Marek Olšák
6d21fd51b6
radeonsi/gfx9: disable RB+ on Vega10
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-03-30 14:44:33 +02:00
Marek Olšák
04e6977e5d
gallium/radeon: reference pipe_resource in pipe_transfer
...
for threaded gallium
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
2017-03-17 18:30:21 +01:00
Timothy Arceri
628e84a58f
gallium/util: replace pipe_mutex_unlock() with mtx_unlock()
...
pipe_mutex_unlock() was made unnecessary with fd33a6bcd7
.
Replaced using:
find ./src -type f -exec sed -i -- \
's:pipe_mutex_unlock(\([^)]*\)):mtx_unlock(\&\1):g' {} \;
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2017-03-07 08:53:05 +11:00
Timothy Arceri
ba72554f3e
gallium/util: replace pipe_mutex_lock() with mtx_lock()
...
replace pipe_mutex_lock() was made unnecessary with fd33a6bcd7
.
Replaced using:
find ./src -type f -exec sed -i -- \
's:pipe_mutex_lock(\([^)]*\)):mtx_lock(\&\1):g' {} \;
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2017-03-07 08:52:38 +11:00
Marek Olšák
45240ce598
radeonsi: use R600_RESOURCE_FLAG_UNMAPPABLE where it's desirable
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-02-18 01:22:08 +01:00
Marek Olšák
c196efcf03
gallium/radeon: add an assertion to texture_transfer_map for app bugs
...
Tested-by: Kai Wasserbäch <kai@dev.carbon-project.org>
Reviewed-by: Kai Wasserbäch <kai@dev.carbon-project.org>
2017-02-14 21:47:51 +01:00
Marek Olšák
43a2ba1b7d
gallium/radeon: use staging for texture read mappings from GTT WC
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-02-10 11:27:50 +01:00
Marek Olšák
f8bc628b2c
gallium/radeon: merge dirty_fb_counter and dirty_tex_descriptor_counter
...
to simplify things in draw_vbo a little
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-01-30 17:45:29 +01:00
Marek Olšák
7b32ae4df5
gallium/radeon: adjust the rule for using the LINEAR_ALIGNED layout
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-01-23 23:43:38 +01:00
Marek Olšák
9a3296bf1c
radeonsi: use SDMA for initial clearing of DCC/CMASK/HTILE on CIK-VI
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-01-05 18:43:23 +01:00
Marek Olšák
49fa4a4e60
gallium/radeon: add RADEON_SURF_OPTIMIZE_FOR_SPACE
...
FORCE_TILING should disable it. It has no effect now, but that may change
soon.
Tested-by: Edmondo Tommasina <edmondo.tommasina@gmail.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2016-11-21 21:44:35 +01:00
Marek Olšák
ce3f453f01
radeonsi: fix r600_texture::tc_compatible_htile
...
htile_size is now always non-zero if HTILE is allocated.
It seems to have caused no issues.
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2016-11-10 18:34:55 +01:00
Marek Olšák
7786f8c635
gallium/radeon: add enum radeon_micro_mode
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2016-11-01 22:33:13 +01:00
Marek Olšák
1a4e0162fc
gallium/radeon: make it clear that DRM 2.x.x fast clear constraint is CIK-only
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2016-11-01 22:33:13 +01:00
Marek Olšák
e3697b4be6
gallium/radeon: remove r600_surface::level_info
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2016-11-01 22:33:13 +01:00
Marek Olšák
bf4d102ea3
gallium/radeon: add radeon_surf::is_linear
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2016-11-01 22:33:13 +01:00
Marek Olšák
e9c76eeeaa
gallium/radeon: remove radeon_surf_level::pitch_bytes
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2016-11-01 22:33:13 +01:00
Marek Olšák
c66a550385
gallium/radeon: don't call u_format helpers if we have that info already
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2016-11-01 22:33:13 +01:00
Marek Olšák
692f2640ab
gallium/radeon: replace radeon_surf_info::dcc_enabled with num_dcc_levels
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2016-11-01 22:33:13 +01:00
Marek Olšák
29144d0f34
gallium/radeon: stop using PIPE_BIND_CUSTOM
...
it has no effect whatsoever
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2016-10-26 13:02:58 +02:00
Marek Olšák
3dc78c33a9
gallium/radeon: remove unused r600_cmask_info members
...
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2016-10-26 13:02:58 +02:00