Compare commits
14 Commits
mesa-18.1.
...
mesa-10.3-
Author | SHA1 | Date | |
---|---|---|---|
|
390a9f6cb7 | ||
|
0fbb9a599d | ||
|
2310a4b4cf | ||
|
8ef3d4fe03 | ||
|
0c67167370 | ||
|
60f136eed9 | ||
|
d2fb1da46d | ||
|
627d31dc36 | ||
|
e4f54d8b47 | ||
|
2edc941e75 | ||
|
eb96819386 | ||
|
f2a1b7d508 | ||
|
53728f60aa | ||
|
04c3c03682 |
12
Makefile.am
12
Makefile.am
@@ -64,14 +64,14 @@ IGNORE_FILES = \
|
||||
|
||||
parsers: configure
|
||||
$(MAKE) -C src/glsl glsl_parser.cpp glsl_parser.h glsl_lexer.cpp glcpp/glcpp-lex.c glcpp/glcpp-parse.c glcpp/glcpp-parse.h
|
||||
$(MAKE) -C src/mesa program/lex.yy.c program/program_parse.tab.c program/program_parse.tab.h
|
||||
$(MAKE) -C src/mesa ../../src/mesa/program/lex.yy.c ../../src/mesa/program/program_parse.tab.c ../../src/mesa/program/program_parse.tab.h
|
||||
|
||||
# Everything for new a Mesa release:
|
||||
ARCHIVES = $(PACKAGE_NAME).tar.gz \
|
||||
$(PACKAGE_NAME).tar.bz2 \
|
||||
$(PACKAGE_NAME).zip
|
||||
|
||||
tarballs: md5
|
||||
tarballs: checksums
|
||||
rm -f ../$(PACKAGE_DIR) $(PACKAGE_NAME).tar
|
||||
|
||||
manifest.txt: .git
|
||||
@@ -98,9 +98,9 @@ $(PACKAGE_NAME).zip: parsers ../$(PACKAGE_DIR) manifest.txt
|
||||
zip -q -@ $(PACKAGE_NAME).zip < $(PACKAGE_DIR)/manifest.txt ; \
|
||||
mv $(PACKAGE_NAME).zip $(PACKAGE_DIR)
|
||||
|
||||
md5: $(ARCHIVES)
|
||||
@-md5sum $(PACKAGE_NAME).tar.gz
|
||||
@-md5sum $(PACKAGE_NAME).tar.bz2
|
||||
@-md5sum $(PACKAGE_NAME).zip
|
||||
checksums: $(ARCHIVES)
|
||||
@-sha256sum $(PACKAGE_NAME).tar.gz
|
||||
@-sha256sum $(PACKAGE_NAME).tar.bz2
|
||||
@-sha256sum $(PACKAGE_NAME).zip
|
||||
|
||||
.PHONY: tarballs md5
|
||||
|
@@ -38,6 +38,7 @@ CHIPSET(0x6828, VERDE_6828, VERDE)
|
||||
CHIPSET(0x6829, VERDE_6829, VERDE)
|
||||
CHIPSET(0x682A, VERDE_682A, VERDE)
|
||||
CHIPSET(0x682B, VERDE_682B, VERDE)
|
||||
CHIPSET(0x682C, VERDE_682C, VERDE)
|
||||
CHIPSET(0x682D, VERDE_682D, VERDE)
|
||||
CHIPSET(0x682F, VERDE_682F, VERDE)
|
||||
CHIPSET(0x6830, VERDE_6830, VERDE)
|
||||
@@ -54,8 +55,11 @@ CHIPSET(0x6600, OLAND_6600, OLAND)
|
||||
CHIPSET(0x6601, OLAND_6601, OLAND)
|
||||
CHIPSET(0x6602, OLAND_6602, OLAND)
|
||||
CHIPSET(0x6603, OLAND_6603, OLAND)
|
||||
CHIPSET(0x6604, OLAND_6604, OLAND)
|
||||
CHIPSET(0x6605, OLAND_6605, OLAND)
|
||||
CHIPSET(0x6606, OLAND_6606, OLAND)
|
||||
CHIPSET(0x6607, OLAND_6607, OLAND)
|
||||
CHIPSET(0x6608, OLAND_6608, OLAND)
|
||||
CHIPSET(0x6610, OLAND_6610, OLAND)
|
||||
CHIPSET(0x6611, OLAND_6611, OLAND)
|
||||
CHIPSET(0x6613, OLAND_6613, OLAND)
|
||||
@@ -73,6 +77,8 @@ CHIPSET(0x666F, HAINAN_666F, HAINAN)
|
||||
|
||||
CHIPSET(0x6640, BONAIRE_6640, BONAIRE)
|
||||
CHIPSET(0x6641, BONAIRE_6641, BONAIRE)
|
||||
CHIPSET(0x6646, BONAIRE_6646, BONAIRE)
|
||||
CHIPSET(0x6647, BONAIRE_6647, BONAIRE)
|
||||
CHIPSET(0x6649, BONAIRE_6649, BONAIRE)
|
||||
CHIPSET(0x6650, BONAIRE_6650, BONAIRE)
|
||||
CHIPSET(0x6651, BONAIRE_6651, BONAIRE)
|
||||
@@ -132,6 +138,7 @@ CHIPSET(0x1313, KAVERI_1313, KAVERI)
|
||||
CHIPSET(0x1315, KAVERI_1315, KAVERI)
|
||||
CHIPSET(0x1316, KAVERI_1316, KAVERI)
|
||||
CHIPSET(0x1317, KAVERI_1317, KAVERI)
|
||||
CHIPSET(0x1318, KAVERI_1318, KAVERI)
|
||||
CHIPSET(0x131B, KAVERI_131B, KAVERI)
|
||||
CHIPSET(0x131C, KAVERI_131C, KAVERI)
|
||||
CHIPSET(0x131D, KAVERI_131D, KAVERI)
|
||||
|
@@ -1060,6 +1060,7 @@ vl_compositor_render(struct vl_compositor_state *s,
|
||||
s->scissor.maxx = dst_surface->width;
|
||||
s->scissor.maxy = dst_surface->height;
|
||||
}
|
||||
c->pipe->set_scissor_states(c->pipe, 0, 1, &s->scissor);
|
||||
|
||||
gen_vertex_data(c, s, dirty_area);
|
||||
|
||||
@@ -1072,7 +1073,6 @@ vl_compositor_render(struct vl_compositor_state *s,
|
||||
dirty_area->x1 = dirty_area->y1 = MIN_DIRTY;
|
||||
}
|
||||
|
||||
c->pipe->set_scissor_states(c->pipe, 0, 1, &s->scissor);
|
||||
c->pipe->set_framebuffer_state(c->pipe, &c->fb_state);
|
||||
c->pipe->bind_vs_state(c->pipe, c->vs);
|
||||
c->pipe->set_vertex_buffers(c->pipe, 0, 1, &c->vertex_buf);
|
||||
|
@@ -251,8 +251,11 @@ int rvid_get_video_param(struct pipe_screen *screen,
|
||||
profile != PIPE_VIDEO_PROFILE_VC1_MAIN;
|
||||
case PIPE_VIDEO_CAP_PREFERS_INTERLACED:
|
||||
case PIPE_VIDEO_CAP_SUPPORTS_INTERLACED:
|
||||
/* and MPEG2 only with shaders */
|
||||
return codec != PIPE_VIDEO_FORMAT_MPEG12;
|
||||
/* MPEG2 only with shaders and no support for
|
||||
interlacing on R6xx style UVD */
|
||||
return codec != PIPE_VIDEO_FORMAT_MPEG12 &&
|
||||
/* TODO: RV770 might actually work */
|
||||
rscreen->family > CHIP_RV770;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@@ -42,6 +42,8 @@ vdp_imp_device_create_x11(Display *display, int screen, VdpDevice *device,
|
||||
VdpGetProcAddress **get_proc_address)
|
||||
{
|
||||
struct pipe_screen *pscreen;
|
||||
struct pipe_resource *res, res_tmpl;
|
||||
struct pipe_sampler_view sv_tmpl;
|
||||
vlVdpDevice *dev = NULL;
|
||||
VdpStatus ret;
|
||||
|
||||
@@ -79,6 +81,43 @@ vdp_imp_device_create_x11(Display *display, int screen, VdpDevice *device,
|
||||
goto no_context;
|
||||
}
|
||||
|
||||
memset(&res_tmpl, 0, sizeof(res_tmpl));
|
||||
|
||||
res_tmpl.target = PIPE_TEXTURE_2D;
|
||||
res_tmpl.format = PIPE_FORMAT_R8G8B8A8_UNORM;
|
||||
res_tmpl.width0 = 1;
|
||||
res_tmpl.height0 = 1;
|
||||
res_tmpl.depth0 = 1;
|
||||
res_tmpl.array_size = 1;
|
||||
res_tmpl.bind = PIPE_BIND_SAMPLER_VIEW;
|
||||
res_tmpl.usage = PIPE_USAGE_DEFAULT;
|
||||
|
||||
if (!CheckSurfaceParams(pscreen, &res_tmpl)) {
|
||||
ret = VDP_STATUS_NO_IMPLEMENTATION;
|
||||
goto no_resource;
|
||||
}
|
||||
|
||||
res = pscreen->resource_create(pscreen, &res_tmpl);
|
||||
if (!res) {
|
||||
ret = VDP_STATUS_RESOURCES;
|
||||
goto no_resource;
|
||||
}
|
||||
|
||||
memset(&sv_tmpl, 0, sizeof(sv_tmpl));
|
||||
u_sampler_view_default_template(&sv_tmpl, res, res->format);
|
||||
|
||||
sv_tmpl.swizzle_r = PIPE_SWIZZLE_ONE;
|
||||
sv_tmpl.swizzle_g = PIPE_SWIZZLE_ONE;
|
||||
sv_tmpl.swizzle_b = PIPE_SWIZZLE_ONE;
|
||||
sv_tmpl.swizzle_a = PIPE_SWIZZLE_ONE;
|
||||
|
||||
dev->dummy_sv = dev->context->create_sampler_view(dev->context, res, &sv_tmpl);
|
||||
pipe_resource_reference(&res, NULL);
|
||||
if (!dev->dummy_sv) {
|
||||
ret = VDP_STATUS_RESOURCES;
|
||||
goto no_resource;
|
||||
}
|
||||
|
||||
*device = vlAddDataHTAB(dev);
|
||||
if (*device == 0) {
|
||||
ret = VDP_STATUS_ERROR;
|
||||
@@ -93,8 +132,9 @@ vdp_imp_device_create_x11(Display *display, int screen, VdpDevice *device,
|
||||
return VDP_STATUS_OK;
|
||||
|
||||
no_handle:
|
||||
pipe_sampler_view_reference(&dev->dummy_sv, NULL);
|
||||
no_resource:
|
||||
dev->context->destroy(dev->context);
|
||||
/* Destroy vscreen */
|
||||
no_context:
|
||||
vl_screen_destroy(dev->vscreen);
|
||||
no_vscreen:
|
||||
@@ -185,6 +225,7 @@ vlVdpDeviceFree(vlVdpDevice *dev)
|
||||
{
|
||||
pipe_mutex_destroy(dev->mutex);
|
||||
vl_compositor_cleanup(&dev->compositor);
|
||||
pipe_sampler_view_reference(&dev->dummy_sv, NULL);
|
||||
dev->context->destroy(dev->context);
|
||||
vl_screen_destroy(dev->vscreen);
|
||||
FREE(dev);
|
||||
|
@@ -624,9 +624,9 @@ vlVdpOutputSurfaceRenderOutputSurface(VdpOutputSurface destination_surface,
|
||||
uint32_t flags)
|
||||
{
|
||||
vlVdpOutputSurface *dst_vlsurface;
|
||||
vlVdpOutputSurface *src_vlsurface;
|
||||
|
||||
struct pipe_context *context;
|
||||
struct pipe_sampler_view *src_sv;
|
||||
struct vl_compositor *compositor;
|
||||
struct vl_compositor_state *cstate;
|
||||
|
||||
@@ -639,12 +639,19 @@ vlVdpOutputSurfaceRenderOutputSurface(VdpOutputSurface destination_surface,
|
||||
if (!dst_vlsurface)
|
||||
return VDP_STATUS_INVALID_HANDLE;
|
||||
|
||||
src_vlsurface = vlGetDataHTAB(source_surface);
|
||||
if (!src_vlsurface)
|
||||
return VDP_STATUS_INVALID_HANDLE;
|
||||
if (source_surface == VDP_INVALID_HANDLE) {
|
||||
src_sv = dst_vlsurface->device->dummy_sv;
|
||||
|
||||
if (dst_vlsurface->device != src_vlsurface->device)
|
||||
return VDP_STATUS_HANDLE_DEVICE_MISMATCH;
|
||||
} else {
|
||||
vlVdpOutputSurface *src_vlsurface = vlGetDataHTAB(source_surface);
|
||||
if (!src_vlsurface)
|
||||
return VDP_STATUS_INVALID_HANDLE;
|
||||
|
||||
if (dst_vlsurface->device != src_vlsurface->device)
|
||||
return VDP_STATUS_HANDLE_DEVICE_MISMATCH;
|
||||
|
||||
src_sv = src_vlsurface->sampler_view;
|
||||
}
|
||||
|
||||
pipe_mutex_lock(dst_vlsurface->device->mutex);
|
||||
vlVdpResolveDelayedRendering(dst_vlsurface->device, NULL, NULL);
|
||||
@@ -657,7 +664,7 @@ vlVdpOutputSurfaceRenderOutputSurface(VdpOutputSurface destination_surface,
|
||||
|
||||
vl_compositor_clear_layers(cstate);
|
||||
vl_compositor_set_layer_blend(cstate, 0, blend, false);
|
||||
vl_compositor_set_rgba_layer(cstate, compositor, 0, src_vlsurface->sampler_view,
|
||||
vl_compositor_set_rgba_layer(cstate, compositor, 0, src_sv,
|
||||
RectToPipe(source_rect, &src_rect), NULL,
|
||||
ColorsToPipe(colors, flags, vlcolors));
|
||||
STATIC_ASSERT(VL_COMPOSITOR_ROTATE_0 == VDP_OUTPUT_SURFACE_RENDER_ROTATE_0);
|
||||
@@ -688,9 +695,9 @@ vlVdpOutputSurfaceRenderBitmapSurface(VdpOutputSurface destination_surface,
|
||||
uint32_t flags)
|
||||
{
|
||||
vlVdpOutputSurface *dst_vlsurface;
|
||||
vlVdpBitmapSurface *src_vlsurface;
|
||||
|
||||
struct pipe_context *context;
|
||||
struct pipe_sampler_view *src_sv;
|
||||
struct vl_compositor *compositor;
|
||||
struct vl_compositor_state *cstate;
|
||||
|
||||
@@ -703,12 +710,19 @@ vlVdpOutputSurfaceRenderBitmapSurface(VdpOutputSurface destination_surface,
|
||||
if (!dst_vlsurface)
|
||||
return VDP_STATUS_INVALID_HANDLE;
|
||||
|
||||
src_vlsurface = vlGetDataHTAB(source_surface);
|
||||
if (!src_vlsurface)
|
||||
return VDP_STATUS_INVALID_HANDLE;
|
||||
if (source_surface == VDP_INVALID_HANDLE) {
|
||||
src_sv = dst_vlsurface->device->dummy_sv;
|
||||
|
||||
if (dst_vlsurface->device != src_vlsurface->device)
|
||||
return VDP_STATUS_HANDLE_DEVICE_MISMATCH;
|
||||
} else {
|
||||
vlVdpBitmapSurface *src_vlsurface = vlGetDataHTAB(source_surface);
|
||||
if (!src_vlsurface)
|
||||
return VDP_STATUS_INVALID_HANDLE;
|
||||
|
||||
if (dst_vlsurface->device != src_vlsurface->device)
|
||||
return VDP_STATUS_HANDLE_DEVICE_MISMATCH;
|
||||
|
||||
src_sv = src_vlsurface->sampler_view;
|
||||
}
|
||||
|
||||
context = dst_vlsurface->device->context;
|
||||
compositor = &dst_vlsurface->device->compositor;
|
||||
@@ -721,7 +735,7 @@ vlVdpOutputSurfaceRenderBitmapSurface(VdpOutputSurface destination_surface,
|
||||
|
||||
vl_compositor_clear_layers(cstate);
|
||||
vl_compositor_set_layer_blend(cstate, 0, blend, false);
|
||||
vl_compositor_set_rgba_layer(cstate, compositor, 0, src_vlsurface->sampler_view,
|
||||
vl_compositor_set_rgba_layer(cstate, compositor, 0, src_sv,
|
||||
RectToPipe(source_rect, &src_rect), NULL,
|
||||
ColorsToPipe(colors, flags, vlcolors));
|
||||
vl_compositor_set_layer_rotation(cstate, 0, flags & 3);
|
||||
|
@@ -348,6 +348,7 @@ typedef struct
|
||||
struct vl_screen *vscreen;
|
||||
struct pipe_context *context;
|
||||
struct vl_compositor compositor;
|
||||
struct pipe_sampler_view *dummy_sv;
|
||||
pipe_mutex mutex;
|
||||
|
||||
struct {
|
||||
|
@@ -289,8 +289,14 @@ HEXADECIMAL_INTEGER 0[xX][0-9a-fA-F]+[uU]?
|
||||
}
|
||||
|
||||
/* Swallow empty #pragma directives, (to avoid confusing the
|
||||
* downstream compiler). */
|
||||
<HASH>pragma{HSPACE}*/{NEWLINE} {
|
||||
* downstream compiler).
|
||||
*
|
||||
* Note: We use a simple regular expression for the lookahead
|
||||
* here. Specifically, we cannot use the complete {NEWLINE} expression
|
||||
* since it uses alternation and we've found that there's a flex bug
|
||||
* where using alternation in the lookahead portion of a pattern
|
||||
* triggers a buffer overrun. */
|
||||
<HASH>pragma{HSPACE}*/[\r\n] {
|
||||
BEGIN INITIAL;
|
||||
}
|
||||
|
||||
|
@@ -36,7 +36,8 @@ endif
|
||||
gldir = $(includedir)/GL
|
||||
gl_HEADERS = $(top_srcdir)/include/GL/*.h
|
||||
|
||||
.PHONY: $(BUILDDIR)main/git_sha1.h.tmp
|
||||
.PHONY: $(BUILDDIR)main/git_sha1.h.tmp $(BUILDDIR)program/lex.yy.c $(BUILDDIR)program/program_parse.tab.c $(BUILDDIR)program/program_parse.tab.h
|
||||
|
||||
$(BUILDDIR)main/git_sha1.h.tmp:
|
||||
@touch main/git_sha1.h.tmp
|
||||
@if test -d $(top_srcdir)/.git; then \
|
||||
|
@@ -1029,19 +1029,17 @@ update_uip_jip(struct brw_context *brw, brw_inst *insn,
|
||||
{
|
||||
int scale = brw->gen >= 8 ? sizeof(brw_compact_inst) : 1;
|
||||
|
||||
int32_t jip = brw_inst_jip(brw, insn);
|
||||
jip -= scale *
|
||||
compacted_between(this_old_ip, this_old_ip + jip, compacted_counts);
|
||||
brw_inst_set_jip(brw, insn, jip);
|
||||
int32_t jip = brw_inst_jip(brw, insn) / scale;
|
||||
jip -= compacted_between(this_old_ip, this_old_ip + jip, compacted_counts);
|
||||
brw_inst_set_jip(brw, insn, jip * scale);
|
||||
|
||||
if (brw_inst_opcode(brw, insn) == BRW_OPCODE_ENDIF ||
|
||||
brw_inst_opcode(brw, insn) == BRW_OPCODE_WHILE)
|
||||
return;
|
||||
|
||||
int32_t uip = brw_inst_uip(brw, insn);
|
||||
uip -= scale *
|
||||
compacted_between(this_old_ip, this_old_ip + uip, compacted_counts);
|
||||
brw_inst_set_uip(brw, insn, uip);
|
||||
int32_t uip = brw_inst_uip(brw, insn) / scale;
|
||||
uip -= compacted_between(this_old_ip, this_old_ip + uip, compacted_counts);
|
||||
brw_inst_set_uip(brw, insn, uip * scale);
|
||||
}
|
||||
|
||||
void
|
||||
|
@@ -282,6 +282,7 @@ get_fast_clear_rect(struct brw_context *brw, struct gl_framebuffer *fb,
|
||||
* factor is 2 vertically and either 2 or 8 horizontally.
|
||||
*/
|
||||
switch (irb->mt->num_samples) {
|
||||
case 2:
|
||||
case 4:
|
||||
x_scaledown = 8;
|
||||
break;
|
||||
|
@@ -1135,6 +1135,13 @@ vec4_visitor::try_emit_mad(ir_expression *ir)
|
||||
bool
|
||||
vec4_visitor::try_emit_b2f_of_compare(ir_expression *ir)
|
||||
{
|
||||
/* This optimization relies on CMP setting the destination to 0 when
|
||||
* false. Early hardware only sets the least significant bit, and
|
||||
* leaves the other bits undefined. So we can't use it.
|
||||
*/
|
||||
if (brw->gen < 6)
|
||||
return false;
|
||||
|
||||
ir_expression *const cmp = ir->operands[0]->as_expression();
|
||||
|
||||
if (cmp == NULL)
|
||||
|
@@ -241,8 +241,5 @@ TEST_F(register_coalesce_test, test_channel_mul_grf)
|
||||
|
||||
register_coalesce(v);
|
||||
|
||||
/* This path isn't supported yet in the reswizzling code, so we're checking
|
||||
* that we haven't done anything bad to scalar non-DP[234]s.
|
||||
*/
|
||||
EXPECT_NE(mul->dst.reg, to.reg);
|
||||
EXPECT_EQ(mul->dst.reg, to.reg);
|
||||
}
|
||||
|
Reference in New Issue
Block a user