| Index: gpu/command_buffer/service/context_state_impl_autogen.h
|
| diff --git a/gpu/command_buffer/service/context_state_impl_autogen.h b/gpu/command_buffer/service/context_state_impl_autogen.h
|
| index 056a382d24db13b6734dc6766778fb234aa5c886..ee061b1157bc086633e8cf0b0c344c816d217997 100644
|
| --- a/gpu/command_buffer/service/context_state_impl_autogen.h
|
| +++ b/gpu/command_buffer/service/context_state_impl_autogen.h
|
| @@ -149,52 +149,64 @@ void ContextState::InitState(const ContextState* prev_state) const {
|
| if ((blend_color_red != prev_state->blend_color_red) ||
|
| (blend_color_green != prev_state->blend_color_green) ||
|
| (blend_color_blue != prev_state->blend_color_blue) ||
|
| - (blend_color_alpha != prev_state->blend_color_alpha))
|
| + (blend_color_alpha != prev_state->blend_color_alpha)) {
|
| glBlendColor(blend_color_red,
|
| blend_color_green,
|
| blend_color_blue,
|
| blend_color_alpha);
|
| + }
|
| if ((blend_equation_rgb != prev_state->blend_equation_rgb) ||
|
| - (blend_equation_alpha != prev_state->blend_equation_alpha))
|
| + (blend_equation_alpha != prev_state->blend_equation_alpha)) {
|
| glBlendEquationSeparate(blend_equation_rgb, blend_equation_alpha);
|
| + }
|
| if ((blend_source_rgb != prev_state->blend_source_rgb) ||
|
| (blend_dest_rgb != prev_state->blend_dest_rgb) ||
|
| (blend_source_alpha != prev_state->blend_source_alpha) ||
|
| - (blend_dest_alpha != prev_state->blend_dest_alpha))
|
| + (blend_dest_alpha != prev_state->blend_dest_alpha)) {
|
| glBlendFuncSeparate(blend_source_rgb,
|
| blend_dest_rgb,
|
| blend_source_alpha,
|
| blend_dest_alpha);
|
| + }
|
| if ((color_clear_red != prev_state->color_clear_red) ||
|
| (color_clear_green != prev_state->color_clear_green) ||
|
| (color_clear_blue != prev_state->color_clear_blue) ||
|
| - (color_clear_alpha != prev_state->color_clear_alpha))
|
| + (color_clear_alpha != prev_state->color_clear_alpha)) {
|
| glClearColor(color_clear_red,
|
| color_clear_green,
|
| color_clear_blue,
|
| color_clear_alpha);
|
| - if ((depth_clear != prev_state->depth_clear))
|
| + }
|
| + if ((depth_clear != prev_state->depth_clear)) {
|
| glClearDepth(depth_clear);
|
| - if ((stencil_clear != prev_state->stencil_clear))
|
| + }
|
| + if ((stencil_clear != prev_state->stencil_clear)) {
|
| glClearStencil(stencil_clear);
|
| + }
|
| if ((cached_color_mask_red != prev_state->cached_color_mask_red) ||
|
| (cached_color_mask_green != prev_state->cached_color_mask_green) ||
|
| (cached_color_mask_blue != prev_state->cached_color_mask_blue) ||
|
| - (cached_color_mask_alpha != prev_state->cached_color_mask_alpha))
|
| + (cached_color_mask_alpha != prev_state->cached_color_mask_alpha)) {
|
| glColorMask(cached_color_mask_red,
|
| cached_color_mask_green,
|
| cached_color_mask_blue,
|
| cached_color_mask_alpha);
|
| - if ((cull_mode != prev_state->cull_mode))
|
| + }
|
| + if ((cull_mode != prev_state->cull_mode)) {
|
| glCullFace(cull_mode);
|
| - if ((depth_func != prev_state->depth_func))
|
| + }
|
| + if ((depth_func != prev_state->depth_func)) {
|
| glDepthFunc(depth_func);
|
| - if ((cached_depth_mask != prev_state->cached_depth_mask))
|
| + }
|
| + if ((cached_depth_mask != prev_state->cached_depth_mask)) {
|
| glDepthMask(cached_depth_mask);
|
| - if ((z_near != prev_state->z_near) || (z_far != prev_state->z_far))
|
| + }
|
| + if ((z_near != prev_state->z_near) || (z_far != prev_state->z_far)) {
|
| glDepthRange(z_near, z_far);
|
| - if ((front_face != prev_state->front_face))
|
| + }
|
| + if ((front_face != prev_state->front_face)) {
|
| glFrontFace(front_face);
|
| + }
|
| if (prev_state->hint_generate_mipmap != hint_generate_mipmap)
|
| glHint(GL_GENERATE_MIPMAP_HINT, hint_generate_mipmap);
|
| if (feature_info_->feature_flags().oes_standard_derivatives)
|
| @@ -202,23 +214,30 @@ void ContextState::InitState(const ContextState* prev_state) const {
|
| hint_fragment_shader_derivative)
|
| glHint(GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES,
|
| hint_fragment_shader_derivative);
|
| - if ((line_width != prev_state->line_width))
|
| - glLineWidth(line_width);
|
| + if ((line_width != prev_state->line_width)) {
|
| + GLfloat sanitized_line_width = line_width;
|
| + if (base::IsNaN(line_width))
|
| + sanitized_line_width = 1.0f;
|
| + glLineWidth(sanitized_line_width);
|
| + }
|
| if (prev_state->pack_alignment != pack_alignment)
|
| glPixelStorei(GL_PACK_ALIGNMENT, pack_alignment);
|
| if (prev_state->unpack_alignment != unpack_alignment)
|
| glPixelStorei(GL_UNPACK_ALIGNMENT, unpack_alignment);
|
| if ((polygon_offset_factor != prev_state->polygon_offset_factor) ||
|
| - (polygon_offset_units != prev_state->polygon_offset_units))
|
| + (polygon_offset_units != prev_state->polygon_offset_units)) {
|
| glPolygonOffset(polygon_offset_factor, polygon_offset_units);
|
| + }
|
| if ((sample_coverage_value != prev_state->sample_coverage_value) ||
|
| - (sample_coverage_invert != prev_state->sample_coverage_invert))
|
| + (sample_coverage_invert != prev_state->sample_coverage_invert)) {
|
| glSampleCoverage(sample_coverage_value, sample_coverage_invert);
|
| + }
|
| if ((scissor_x != prev_state->scissor_x) ||
|
| (scissor_y != prev_state->scissor_y) ||
|
| (scissor_width != prev_state->scissor_width) ||
|
| - (scissor_height != prev_state->scissor_height))
|
| + (scissor_height != prev_state->scissor_height)) {
|
| glScissor(scissor_x, scissor_y, scissor_width, scissor_height);
|
| + }
|
| if ((stencil_front_func != prev_state->stencil_front_func) ||
|
| (stencil_front_ref != prev_state->stencil_front_ref) ||
|
| (stencil_front_mask != prev_state->stencil_front_mask))
|
| @@ -252,8 +271,9 @@ void ContextState::InitState(const ContextState* prev_state) const {
|
| if ((viewport_x != prev_state->viewport_x) ||
|
| (viewport_y != prev_state->viewport_y) ||
|
| (viewport_width != prev_state->viewport_width) ||
|
| - (viewport_height != prev_state->viewport_height))
|
| + (viewport_height != prev_state->viewport_height)) {
|
| glViewport(viewport_x, viewport_y, viewport_width, viewport_height);
|
| + }
|
| } else {
|
| glBlendColor(blend_color_red,
|
| blend_color_green,
|
| @@ -281,7 +301,10 @@ void ContextState::InitState(const ContextState* prev_state) const {
|
| if (feature_info_->feature_flags().oes_standard_derivatives)
|
| glHint(GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES,
|
| hint_fragment_shader_derivative);
|
| - glLineWidth(line_width);
|
| + GLfloat sanitized_line_width = line_width;
|
| + if (base::IsNaN(line_width))
|
| + sanitized_line_width = 1.0f;
|
| + glLineWidth(sanitized_line_width);
|
| glPixelStorei(GL_PACK_ALIGNMENT, pack_alignment);
|
| glPixelStorei(GL_UNPACK_ALIGNMENT, unpack_alignment);
|
| glPolygonOffset(polygon_offset_factor, polygon_offset_units);
|
|
|