Index: gpu/command_buffer/service/feature_info.cc |
=================================================================== |
--- gpu/command_buffer/service/feature_info.cc (revision 195901) |
+++ gpu/command_buffer/service/feature_info.cc (working copy) |
@@ -95,6 +95,7 @@ |
use_current_program_after_successful_link(false), |
restore_scissor_on_fbo_change(false), |
flush_on_context_switch(false), |
+ makecurrent_recreates_surfaces(false), |
delete_instead_of_resize_fbo(false), |
use_client_side_arrays_for_stream_buffers(false), |
max_texture_size(0), |
@@ -172,6 +173,7 @@ |
bool is_qualcomm = false; |
bool is_imagination = false; |
bool is_arm = false; |
+ bool is_hisilicon = false; |
for (size_t ii = 0; ii < arraysize(string_ids); ++ii) { |
const char* str = reinterpret_cast<const char*>( |
glGetString(string_ids[ii])); |
@@ -185,6 +187,7 @@ |
is_qualcomm |= string_set.Contains("qualcomm"); |
is_imagination |= string_set.Contains("imagination"); |
is_arm |= string_set.Contains("arm"); |
+ is_hisilicon |= string_set.Contains("hisilicon"); |
} |
} |
@@ -656,6 +659,10 @@ |
workarounds_.delete_instead_of_resize_fbo = true; |
} |
+ if (is_hisilicon) { |
+ workarounds_.makecurrent_recreates_surfaces = true; |
+ } |
+ |
#if defined(OS_MACOSX) |
workarounds_.needs_offscreen_buffer_workaround = is_nvidia; |
workarounds_.needs_glsl_built_in_function_emulation = is_amd; |