diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c index a55a9a5e061..31904e53b14 100644 --- a/src/mesa/state_tracker/st_extensions.c +++ b/src/mesa/state_tracker/st_extensions.c @@ -696,9 +696,10 @@ get_max_samples_for_formats(struct pipe_screen *screen, unsigned bind) { unsigned i, f, supported_samples = 0; + unsigned min_samples = screen->caps.fake_sw_msaa ? 1 : 2; for (f = 0; f < num_formats; f++) { - for (i = max_samples; i > 0; --i) { + for (i = max_samples; i >= min_samples; --i) { if (screen->is_format_supported(screen, formats[f], PIPE_TEXTURE_2D, i, i, bind)) { /* update both return value and loop-boundary */ @@ -719,8 +720,9 @@ get_max_samples_for_formats_advanced(struct pipe_screen *screen, unsigned bind) { unsigned i, f; + unsigned min_samples = screen->caps.fake_sw_msaa ? 1 : 2; - for (i = max_samples; i > 0; --i) { + for (i = max_samples; i >= min_samples; --i) { for (f = 0; f < num_formats; f++) { if (screen->is_format_supported(screen, formats[f], PIPE_TEXTURE_2D, i, num_storage_samples, bind)) {