[Mesa-dev] Question: in i965 question, potential bug pull vs push constants in vertex shader

Rogovin, Kevin kevin.rogovin at intel.com
Wed Nov 27 04:50:46 PST 2013

Hi all,

  I was taking a look in i965 taking a closer look at the upload to GPU of param and pull_param for vertex shaders. What I found was this:
   1) in vec4_visitor::move_uniform_array_access_to_pull_constants(), those uniforms that are relatively addressed are cloned from param to pull_param.
   2) in gen6_upload_vec4_push_constants() (which is used by Gen6 and Gen7) -all- values of param are uploaded, but there is an assert() checking that no more than a critical number push constants are uploaded (i.e. essentially, before padding that nr_params/8 is not more than 32)
   3) the only assignment I see to nr_params  is in vec4_visitor::setup_uniforms() setting it to this->uniforms*4

However, I did not find anywhere in the code that guaranteed that nr_params is no more than 256. So, where is it set? Or is vec4_visitor::uniforms guaranteed not to go beyond 64 somehow?


More information about the mesa-dev mailing list