Index: gpu/command_buffer/service/feature_info.cc |
=================================================================== |
--- gpu/command_buffer/service/feature_info.cc (revision 192406) |
+++ gpu/command_buffer/service/feature_info.cc (working copy) |
@@ -11,7 +11,6 @@ |
#include "base/strings/string_number_conversions.h" |
#include "base/strings/string_split.h" |
#include "gpu/command_buffer/service/gl_utils.h" |
-#include "gpu/command_buffer/service/gpu_driver_bug_workaround_type.h" |
#include "gpu/command_buffer/service/gpu_switches.h" |
#include "ui/gl/gl_implementation.h" |
#if defined(OS_MACOSX) |
@@ -76,78 +75,24 @@ |
bool succeed = base::StringToInt(pieces[i], &number); |
DCHECK(succeed); |
switch (number) { |
- case gpu::CLEAR_ALPHA_IN_READPIXELS: |
- workarounds->clear_alpha_in_readpixels = true; |
- break; |
- case gpu::CLEAR_UNIFORMS_BEFORE_PROGRAM_USE: |
- workarounds->clear_uniforms_before_program_use = true; |
- break; |
- case gpu::DELETE_INSTEAD_OF_RESIZE_FBO: |
- workarounds->delete_instead_of_resize_fbo = true; |
- break; |
- case gpu::DISABLE_ANGLE_FRAMEBUFFER_MULTISAMPLE: |
- workarounds->disable_angle_framebuffer_multisample = true; |
- break; |
- case gpu::DISABLE_DEPTH_TEXTURE: |
- workarounds->disable_depth_texture = true; |
- break; |
- case gpu::DISABLE_EXT_OCCLUSION_QUERY: |
- workarounds->disable_ext_occlusion_query = true; |
- break; |
- case gpu::ENABLE_CHROMIUM_FAST_NPOT_MO8_TEXTURES: |
- workarounds->enable_chromium_fast_npot_mo8_textures = true; |
- break; |
- case gpu::EXIT_ON_CONTEXT_LOST: |
- workarounds->exit_on_context_lost = true; |
- break; |
- case gpu::FLUSH_ON_CONTEXT_SWITCH: |
- workarounds->flush_on_context_switch = true; |
- break; |
- case gpu::MAX_CUBE_MAP_TEXTURE_SIZE_LIMIT_1024: |
- if (workarounds->max_cube_map_texture_size == 0 || |
- workarounds->max_cube_map_texture_size > 1024) |
- workarounds->max_cube_map_texture_size = 1024; |
- break; |
- case gpu::MAX_CUBE_MAP_TEXTURE_SIZE_LIMIT_4096: |
- if (workarounds->max_cube_map_texture_size == 0 || |
- workarounds->max_cube_map_texture_size > 4096) |
- workarounds->max_cube_map_texture_size = 4096; |
- break; |
- case gpu::MAX_CUBE_MAP_TEXTURE_SIZE_LIMIT_512: |
- if (workarounds->max_cube_map_texture_size == 0 || |
- workarounds->max_cube_map_texture_size > 512) |
- workarounds->max_cube_map_texture_size = 512; |
- break; |
- case gpu::MAX_TEXTURE_SIZE_LIMIT_4096: |
- if (workarounds->max_texture_size == 0 || |
- workarounds->max_texture_size > 4096) |
- workarounds->max_texture_size = 4096; |
- break; |
- case gpu::NEEDS_GLSL_BUILT_IN_FUNCTION_EMULATION: |
- workarounds->needs_glsl_built_in_function_emulation = true; |
- break; |
- case gpu::NEEDS_OFFSCREEN_BUFFER_WORKAROUND: |
- workarounds->needs_offscreen_buffer_workaround = true; |
- break; |
- case gpu::RESTORE_SCISSOR_ON_FBO_CHANGE: |
- workarounds->restore_scissor_on_fbo_change = true; |
- break; |
- case REVERSE_POINT_SPRITE_COORD_ORIGIN: |
- workarounds->reverse_point_sprite_coord_origin = true; |
- break; |
- case gpu::SET_TEXTURE_FILTER_BEFORE_GENERATING_MIPMAP: |
- workarounds->set_texture_filter_before_generating_mipmap = true; |
- break; |
- case gpu::USE_CLIENT_SIDE_ARRAYS_FOR_STREAM_BUFFERS: |
- workarounds->use_client_side_arrays_for_stream_buffers = true; |
- break; |
- case gpu::USE_CURRENT_PROGRAM_AFTER_SUCCESSFUL_LINK: |
- workarounds->use_current_program_after_successful_link = true; |
- break; |
+#define GPU_OP(type, name) \ |
+ case gpu::type: \ |
+ workarounds->name = true; \ |
+ break; |
+ GPU_DRIVER_BUG_WORKAROUNDS(GPU_OP) |
+#undef GPU_OP |
default: |
NOTIMPLEMENTED(); |
} |
} |
+ if (workarounds->max_texture_size_limit_4096) |
+ workarounds->max_texture_size = 4096; |
+ if (workarounds->max_cube_map_texture_size_limit_4096) |
+ workarounds->max_cube_map_texture_size = 4096; |
+ if (workarounds->max_cube_map_texture_size_limit_1024) |
+ workarounds->max_cube_map_texture_size = 1024; |
+ if (workarounds->max_cube_map_texture_size_limit_512) |
+ workarounds->max_cube_map_texture_size = 512; |
} |
} // anonymous namespace. |
@@ -173,25 +118,12 @@ |
ext_draw_buffers(false) { |
} |
-FeatureInfo::Workarounds::Workarounds() |
- : clear_alpha_in_readpixels(false), |
- clear_uniforms_before_program_use(false), |
- delete_instead_of_resize_fbo(false), |
- disable_angle_framebuffer_multisample(false), |
- disable_depth_texture(false), |
- disable_ext_occlusion_query(false), |
- enable_chromium_fast_npot_mo8_textures(false), |
- exit_on_context_lost(false), |
- flush_on_context_switch(false), |
- needs_glsl_built_in_function_emulation(false), |
- needs_offscreen_buffer_workaround(false), |
- restore_scissor_on_fbo_change(false), |
- reverse_point_sprite_coord_origin(false), |
- set_texture_filter_before_generating_mipmap(false), |
- use_client_side_arrays_for_stream_buffers(false), |
- use_current_program_after_successful_link(false), |
- max_texture_size(0), |
- max_cube_map_texture_size(0) { |
+FeatureInfo::Workarounds::Workarounds() : |
+#define GPU_OP(type, name) name(false), |
+ GPU_DRIVER_BUG_WORKAROUNDS(GPU_OP) |
+#undef GPU_OP |
+ max_texture_size(0), |
+ max_cube_map_texture_size(0) { |
} |
FeatureInfo::FeatureInfo() { |