Go to the source code of this file.
Functions | |
static void | upload_gs_unit (struct brw_context *brw) |
Variables | |
struct brw_tracked_state | brw_gs_unit |
static void upload_gs_unit | ( | struct brw_context * | brw | ) | [static] |
Definition at line 42 of file brw_gs_state.c.
References align(), brw_cache_data(), BRW_DEBUG, BRW_FLOATING_POINT_NON_IEEE_754, BRW_GS_UNIT, brw_context::cache, thread3::const_urb_entry_read_length, thread3::const_urb_entry_read_offset, DEBUG_STATS, thread3::dispatch_grf_start_reg, thread1::floating_point_mode, thread0::grf_reg_count, brw_context::gs, thread0::kernel_start_pointer, brw_gs_unit_state::max_threads, brw_context::nr_gs_entries, brw_gs_unit_state::nr_urb_entries, brw_context::prog_active, brw_context::prog_data, brw_context::prog_gs_offset, thread1::single_program_flow, brw_context::state_gs_offset, brw_gs_unit_state::stats_enable, brw_gs_unit_state::thread0, brw_gs_unit_state::thread1, brw_gs_unit_state::thread3, brw_gs_unit_state::thread4, brw_vs_prog_data::total_grf, brw_context::urb, brw_gs_unit_state::urb_entry_allocation_size, thread3::urb_entry_read_length, thread3::urb_entry_read_offset, brw_vs_prog_data::urb_read_length, and brw_context::vsize.
00043 { 00044 struct brw_gs_unit_state gs; 00045 00046 memset(&gs, 0, sizeof(gs)); 00047 00048 /* CACHE_NEW_GS_PROG */ 00049 if (brw->gs.prog_active) { 00050 gs.thread0.grf_reg_count = 00051 align(brw->gs.prog_data->total_grf, 16) / 16 - 1; 00052 gs.thread0.kernel_start_pointer = brw->gs.prog_gs_offset >> 6; 00053 gs.thread3.urb_entry_read_length = brw->gs.prog_data->urb_read_length; 00054 } 00055 else { 00056 gs.thread0.grf_reg_count = 0; 00057 gs.thread0.kernel_start_pointer = 0; 00058 gs.thread3.urb_entry_read_length = 1; 00059 } 00060 00061 /* BRW_NEW_URB_FENCE */ 00062 gs.thread4.nr_urb_entries = brw->urb.nr_gs_entries; 00063 gs.thread4.urb_entry_allocation_size = brw->urb.vsize - 1; 00064 00065 gs.thread4.max_threads = 0; /* Hardware requirement */ 00066 00067 if (BRW_DEBUG & DEBUG_STATS) 00068 gs.thread4.stats_enable = 1; 00069 00070 /* CONSTANT */ 00071 gs.thread1.floating_point_mode = BRW_FLOATING_POINT_NON_IEEE_754; 00072 gs.thread1.single_program_flow = 1; 00073 gs.thread3.dispatch_grf_start_reg = 1; 00074 gs.thread3.const_urb_entry_read_offset = 0; 00075 gs.thread3.const_urb_entry_read_length = 0; 00076 gs.thread3.urb_entry_read_offset = 0; 00077 00078 00079 brw->gs.state_gs_offset = brw_cache_data( &brw->cache[BRW_GS_UNIT], &gs ); 00080 }
struct brw_tracked_state brw_gs_unit |
Initial value:
{ .dirty = { .brw = ( 0x40000 | 0x10000 ), .cache = (1<<BRW_GS_PROG) }, .update = upload_gs_unit }
Definition at line 83 of file brw_gs_state.c.